/*
 * Copyright Codeplay Software Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use these files except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// DO NOT MODIFY BY HAND
// This file was automatically generated by generate_depthwise_conv2d_tests.py.
// Results calculated using Tensorflow v1.12.0.

#include <gtest/gtest.h>

#include "sycldnn/padding_mode.h"

#include "test/types/cartesian_product.h"
#include "test/types/kernel_data_types.h"
#include "test/types/test_backend_types.h"
#include "test/types/to_gtest_types.h"

#include "test/depthwise_conv2d/window_stride_fixture.h"

#include <array>
#include <vector>

using DataTypeList = sycldnn::types::KernelDataTypes;
using Backends = sycldnn::types::DefaultBackendTypes;

using SNNTypePairs =
    sycldnn::types::CartesianProduct<DataTypeList, Backends>::type;
using GTestTypePairs = sycldnn::types::ToGTestTypes<SNNTypePairs>::type;

template <typename Pair>
using FilterBackpropWindow7Stride1 =
    sycldnn::depthwise_conv2d::WindowStrideTest<Pair, 7, 1>;
TYPED_TEST_SUITE(FilterBackpropWindow7Stride1, GTestTypePairs);
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      25100., 30545., 36120., 41820., 36960., 31985., 26900., 34640., 41934.,
      49336., 56840., 50008., 43086., 36080., 44940., 54187., 63504., 72884.,
      63896., 54859., 45780., 55680., 66920., 78176., 89440., 78176., 66920.,
      55680., 45780., 54859., 63896., 72884., 63504., 54187., 44940., 36080.,
      43086., 50008., 56840., 49336., 41934., 34640., 26900., 31985., 36960.,
      41820., 36120., 30545., 25100.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      72.,  82.,  92.,  102., 112., 122., 132., 152., 162., 172.,
      182., 192., 202., 212., 232., 242., 252., 262., 272., 282.,
      292., 312., 322., 332., 342., 352., 362., 372., 392., 402.,
      412., 422., 432., 442., 452., 472., 482., 492., 502., 512.,
      522., 532., 552., 562., 572., 582., 592., 602., 612.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      49725.,  50200.,  60505.,  61090.,  71540.,  72240.,  82820.,  83640.,
      73185.,  73920.,  63325.,  63970.,  53250.,  53800.,  68590.,  69280.,
      83022.,  83868.,  97664.,  98672.,  112504., 113680., 98966.,  100016.,
      85254.,  86172.,  71380.,  72160.,  88935.,  89880.,  107219., 108374.,
      125636., 127008., 144172., 145768., 126371., 127792., 108479., 109718.,
      90510.,  91560.,  110120., 111360., 132328., 133840., 154560., 156352.,
      176800., 178880., 154504., 156352., 132232., 133840., 110000., 111360.,
      90335.,  91560.,  108227., 109718., 126028., 127792., 143724., 145768.,
      125195., 127008., 106799., 108374., 88550.,  89880.,  70990.,  72160.,
      84750.,  86172.,  98336.,  100016., 111736., 113680., 96950.,  98672.,
      82374.,  83868.,  68020.,  69280.,  52725.,  53800.,  62665.,  63970.,
      72380.,  73920.,  81860.,  83640.,  70665.,  72240.,  59725.,  61090.,
      49050.,  50200.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      122., 144.,  138., 164.,  154., 184.,  170., 204.,  186., 224.,
      202., 244.,  218., 264.,  250., 304.,  266., 324.,  282., 344.,
      298., 364.,  314., 384.,  330., 404.,  346., 424.,  378., 464.,
      394., 484.,  410., 504.,  426., 524.,  442., 544.,  458., 564.,
      474., 584.,  506., 624.,  522., 644.,  538., 664.,  554., 684.,
      570., 704.,  586., 724.,  602., 744.,  634., 784.,  650., 804.,
      666., 824.,  682., 844.,  698., 864.,  714., 884.,  730., 904.,
      762., 944.,  778., 964.,  794., 984.,  810., 1004., 826., 1024.,
      842., 1044., 858., 1064., 890., 1104., 906., 1124., 922., 1144.,
      938., 1164., 954., 1184., 970., 1204., 986., 1224.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      98975.,  99450.,  99925.,  100400., 120425., 121010., 121595., 122180.,
      142380., 143080., 143780., 144480., 164820., 165640., 166460., 167280.,
      145635., 146370., 147105., 147840., 126005., 126650., 127295., 127940.,
      105950., 106500., 107050., 107600., 136490., 137180., 137870., 138560.,
      165198., 166044., 166890., 167736., 194320., 195328., 196336., 197344.,
      223832., 225008., 226184., 227360., 196882., 197932., 198982., 200032.,
      169590., 170508., 171426., 172344., 141980., 142760., 143540., 144320.,
      176925., 177870., 178815., 179760., 213283., 214438., 215593., 216748.,
      249900., 251272., 252644., 254016., 286748., 288344., 289940., 291536.,
      251321., 252742., 254163., 255584., 215719., 216958., 218197., 219436.,
      179970., 181020., 182070., 183120., 219000., 220240., 221480., 222720.,
      263144., 264656., 266168., 267680., 307328., 309120., 310912., 312704.,
      351520., 353600., 355680., 357760., 307160., 309008., 310856., 312704.,
      262856., 264464., 266072., 267680., 218640., 220000., 221360., 222720.,
      179445., 180670., 181895., 183120., 214963., 216454., 217945., 219436.,
      250292., 252056., 253820., 255584., 285404., 287448., 289492., 291536.,
      248577., 250390., 252203., 254016., 212023., 213598., 215173., 216748.,
      175770., 177100., 178430., 179760., 140810., 141980., 143150., 144320.,
      168078., 169500., 170922., 172344., 194992., 196672., 198352., 200032.,
      221528., 223472., 225416., 227360., 192178., 193900., 195622., 197344.,
      163254., 164748., 166242., 167736., 134780., 136040., 137300., 138560.,
      104375., 105450., 106525., 107600., 124025., 125330., 126635., 127940.,
      143220., 144760., 146300., 147840., 161940., 163720., 165500., 167280.,
      139755., 141330., 142905., 144480., 118085., 119450., 120815., 122180.,
      96950.,  98100.,  99250.,  100400.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      222.,  244.,  266.,  288.,  250.,  276.,  302.,  328.,  278.,  308.,
      338.,  368.,  306.,  340.,  374.,  408.,  334.,  372.,  410.,  448.,
      362.,  404.,  446.,  488.,  390.,  436.,  482.,  528.,  446.,  500.,
      554.,  608.,  474.,  532.,  590.,  648.,  502.,  564.,  626.,  688.,
      530.,  596.,  662.,  728.,  558.,  628.,  698.,  768.,  586.,  660.,
      734.,  808.,  614.,  692.,  770.,  848.,  670.,  756.,  842.,  928.,
      698.,  788.,  878.,  968.,  726.,  820.,  914.,  1008., 754.,  852.,
      950.,  1048., 782.,  884.,  986.,  1088., 810.,  916.,  1022., 1128.,
      838.,  948.,  1058., 1168., 894.,  1012., 1130., 1248., 922.,  1044.,
      1166., 1288., 950.,  1076., 1202., 1328., 978.,  1108., 1238., 1368.,
      1006., 1140., 1274., 1408., 1034., 1172., 1310., 1448., 1062., 1204.,
      1346., 1488., 1118., 1268., 1418., 1568., 1146., 1300., 1454., 1608.,
      1174., 1332., 1490., 1648., 1202., 1364., 1526., 1688., 1230., 1396.,
      1562., 1728., 1258., 1428., 1598., 1768., 1286., 1460., 1634., 1808.,
      1342., 1524., 1706., 1888., 1370., 1556., 1742., 1928., 1398., 1588.,
      1778., 1968., 1426., 1620., 1814., 2008., 1454., 1652., 1850., 2048.,
      1482., 1684., 1886., 2088., 1510., 1716., 1922., 2128., 1566., 1780.,
      1994., 2208., 1594., 1812., 2030., 2248., 1622., 1844., 2066., 2288.,
      1650., 1876., 2102., 2328., 1678., 1908., 2138., 2368., 1706., 1940.,
      2174., 2408., 1734., 1972., 2210., 2448.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      97175.,  100400., 118310., 122180., 139965., 144480., 162120., 167280.,
      143325., 147840., 124070., 127940., 104375., 107600., 134690., 138560.,
      163092., 167736., 191926., 197344., 221168., 227360., 194614., 200032.,
      167700., 172344., 140450., 144320., 175245., 179760., 211330., 216748.,
      247695., 254016., 284312., 291536., 249263., 255584., 214018., 219436.,
      178605., 183120., 217560., 222720., 261488., 267680., 305480., 312704.,
      349504., 357760., 305480., 312704., 261488., 267680., 217560., 222720.,
      178605., 183120., 214018., 219436., 249263., 255584., 284312., 291536.,
      247695., 254016., 211330., 216748., 175245., 179760., 140450., 144320.,
      167700., 172344., 194614., 200032., 221168., 227360., 191926., 197344.,
      163092., 167736., 134690., 138560., 104375., 107600., 124070., 127940.,
      143325., 147840., 162120., 167280., 139965., 144480., 118310., 122180.,
      97175.,  100400.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      228.,  288.,  260.,  328.,  292.,  368.,  324.,  408.,  356.,  448.,
      388.,  488.,  420.,  528.,  484.,  608.,  516.,  648.,  548.,  688.,
      580.,  728.,  612.,  768.,  644.,  808.,  676.,  848.,  740.,  928.,
      772.,  968.,  804.,  1008., 836.,  1048., 868.,  1088., 900.,  1128.,
      932.,  1168., 996.,  1248., 1028., 1288., 1060., 1328., 1092., 1368.,
      1124., 1408., 1156., 1448., 1188., 1488., 1252., 1568., 1284., 1608.,
      1316., 1648., 1348., 1688., 1380., 1728., 1412., 1768., 1444., 1808.,
      1508., 1888., 1540., 1928., 1572., 1968., 1604., 2008., 1636., 2048.,
      1668., 2088., 1700., 2128., 1764., 2208., 1796., 2248., 1828., 2288.,
      1860., 2328., 1892., 2368., 1924., 2408., 1956., 2448.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      193425., 194350., 199850., 200800., 235480., 236620., 243190., 244360.,
      278565., 279930., 287560., 288960., 322640., 324240., 332920., 334560.,
      285215., 286650., 294210., 295680., 246880., 248140., 254590., 255880.,
      207675., 208750., 214100., 215200., 268030., 269380., 275740., 277120.,
      324528., 326184., 333780., 335472., 381878., 383852., 392672., 394688.,
      440032., 442336., 452368., 454720., 387170., 389228., 397964., 400064.,
      333600., 335400., 342852., 344688., 279370., 280900., 287080., 288640.,
      348635., 350490., 357630., 359520., 420392., 422660., 431186., 433496.,
      492695., 495390., 505288., 508032., 565488., 568624., 579880., 583072.,
      495733., 498526., 508326., 511168., 425600., 428036., 436394., 438872.,
      355145., 357210., 364140., 366240., 432680., 435120., 442960., 445440.,
      520000., 522976., 532336., 535360., 607432., 610960., 621824., 625408.,
      694912., 699008., 711360., 715520., 607320., 610960., 621712., 625408.,
      519808., 522976., 532144., 535360., 432440., 435120., 442720., 445440.,
      354795., 357210., 363790., 366240., 425096., 428036., 435890., 438872.,
      495047., 498526., 507640., 511168., 564592., 568624., 578984., 583072.,
      491813., 495390., 504406., 508032., 419552., 422660., 430346., 433496.,
      347865., 350490., 356860., 359520., 278590., 280900., 286300., 288640.,
      332592., 335400., 341844., 344688., 385910., 389228., 396704., 400064.,
      438496., 442336., 450832., 454720., 380450., 383852., 391244., 394688.,
      323232., 326184., 332484., 335472., 266890., 269380., 274600., 277120.,
      206625., 208750., 213050., 215200., 245560., 248140., 253270., 255880.,
      283605., 286650., 292600., 295680., 320720., 324240., 331000., 334560.,
      276815., 279930., 285810., 288960., 233920., 236620., 241630., 244360.,
      192075., 194350., 198500., 200800.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      416.,  456.,  532.,  576.,  472.,  520.,  604.,  656.,  528.,  584.,
      676.,  736.,  584.,  648.,  748.,  816.,  640.,  712.,  820.,  896.,
      696.,  776.,  892.,  976.,  752.,  840.,  964.,  1056., 864.,  968.,
      1108., 1216., 920.,  1032., 1180., 1296., 976.,  1096., 1252., 1376.,
      1032., 1160., 1324., 1456., 1088., 1224., 1396., 1536., 1144., 1288.,
      1468., 1616., 1200., 1352., 1540., 1696., 1312., 1480., 1684., 1856.,
      1368., 1544., 1756., 1936., 1424., 1608., 1828., 2016., 1480., 1672.,
      1900., 2096., 1536., 1736., 1972., 2176., 1592., 1800., 2044., 2256.,
      1648., 1864., 2116., 2336., 1760., 1992., 2260., 2496., 1816., 2056.,
      2332., 2576., 1872., 2120., 2404., 2656., 1928., 2184., 2476., 2736.,
      1984., 2248., 2548., 2816., 2040., 2312., 2620., 2896., 2096., 2376.,
      2692., 2976., 2208., 2504., 2836., 3136., 2264., 2568., 2908., 3216.,
      2320., 2632., 2980., 3296., 2376., 2696., 3052., 3376., 2432., 2760.,
      3124., 3456., 2488., 2824., 3196., 3536., 2544., 2888., 3268., 3616.,
      2656., 3016., 3412., 3776., 2712., 3080., 3484., 3856., 2768., 3144.,
      3556., 3936., 2824., 3208., 3628., 4016., 2880., 3272., 3700., 4096.,
      2936., 3336., 3772., 4176., 2992., 3400., 3844., 4256., 3104., 3528.,
      3988., 4416., 3160., 3592., 4060., 4496., 3216., 3656., 4132., 4576.,
      3272., 3720., 4204., 4656., 3328., 3784., 4276., 4736., 3384., 3848.,
      4348., 4816., 3440., 3912., 4420., 4896.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      385925.,  386850.,  387775.,  388700.,  398750.,  399700.,  400650.,
      401600.,  469820.,  470960.,  472100.,  473240.,  485210.,  486380.,
      487550.,  488720.,  555765.,  557130.,  558495.,  559860.,  573720.,
      575120.,  576520.,  577920.,  643680.,  645280.,  646880.,  648480.,
      664200.,  665840.,  667480.,  669120.,  568995.,  570430.,  571865.,
      573300.,  586950.,  588420.,  589890.,  591360.,  492500.,  493760.,
      495020.,  496280.,  507890.,  509180.,  510470.,  511760.,  414275.,
      415350.,  416425.,  417500.,  427100.,  428200.,  429300.,  430400.,
      534710.,  536060.,  537410.,  538760.,  550100.,  551480.,  552860.,
      554240.,  647400.,  649056.,  650712.,  652368.,  665868.,  667560.,
      669252.,  670944.,  761782.,  763756.,  765730.,  767704.,  783328.,
      785344.,  787360.,  789376.,  877760.,  880064.,  882368.,  884672.,
      902384.,  904736.,  907088.,  909440.,  772282.,  774340.,  776398.,
      778456.,  793828.,  795928.,  798028.,  800128.,  665400.,  667200.,
      669000.,  670800.,  683868.,  685704.,  687540.,  689376.,  557210.,
      558740.,  560270.,  561800.,  572600.,  574160.,  575720.,  577280.,
      695415.,  697270.,  699125.,  700980.,  713370.,  715260.,  717150.,
      719040.,  838516.,  840784.,  843052.,  845320.,  860062.,  862372.,
      864682.,  866992.,  982695.,  985390.,  988085.,  990780.,  1007832.,
      1010576., 1013320., 1016064., 1127840., 1130976., 1134112., 1137248.,
      1156568., 1159760., 1162952., 1166144., 988673.,  991466.,  994259.,
      997052.,  1013810., 1016652., 1019494., 1022336., 848764.,  851200.,
      853636.,  856072.,  870310.,  872788.,  875266.,  877744.,  708225.,
      710290.,  712355.,  714420.,  726180.,  728280.,  730380.,  732480.,
      862920.,  865360.,  867800.,  870240.,  883440.,  885920.,  888400.,
      890880.,  1037024., 1040000., 1042976., 1045952., 1061648., 1064672.,
      1067696., 1070720., 1211336., 1214864., 1218392., 1221920., 1240064.,
      1243648., 1247232., 1250816., 1385728., 1389824., 1393920., 1398016.,
      1418560., 1422720., 1426880., 1431040., 1211000., 1214640., 1218280.,
      1221920., 1239728., 1243424., 1247120., 1250816., 1036448., 1039616.,
      1042784., 1045952., 1061072., 1064288., 1067504., 1070720., 862200.,
      864880.,  867560.,  870240.,  882720.,  885440.,  888160.,  890880.,
      707175.,  709590.,  712005.,  714420.,  725130.,  727580.,  730030.,
      732480.,  847252.,  850192.,  853132.,  856072.,  868798.,  871780.,
      874762.,  877744.,  986615.,  990094.,  993573.,  997052.,  1011752.,
      1015280., 1018808., 1022336., 1125152., 1129184., 1133216., 1137248.,
      1153880., 1157968., 1162056., 1166144., 980049.,  983626.,  987203.,
      990780.,  1005186., 1008812., 1012438., 1016064., 835996.,  839104.,
      842212.,  845320.,  857542.,  860692.,  863842.,  866992.,  693105.,
      695730.,  698355.,  700980.,  711060.,  713720.,  716380.,  719040.,
      554870.,  557180.,  559490.,  561800.,  570260.,  572600.,  574940.,
      577280.,  662376.,  665184.,  667992.,  670800.,  680844.,  683688.,
      686532.,  689376.,  768502.,  771820.,  775138.,  778456.,  790048.,
      793408.,  796768.,  800128.,  873152.,  876992.,  880832.,  884672.,
      897776.,  901664.,  905552.,  909440.,  757498.,  760900.,  764302.,
      767704.,  779044.,  782488.,  785932.,  789376.,  643512.,  646464.,
      649416.,  652368.,  661980.,  664968.,  667956.,  670944.,  531290.,
      533780.,  536270.,  538760.,  546680.,  549200.,  551720.,  554240.,
      411125.,  413250.,  415375.,  417500.,  423950.,  426100.,  428250.,
      430400.,  488540.,  491120.,  493700.,  496280.,  503930.,  506540.,
      509150.,  511760.,  564165.,  567210.,  570255.,  573300.,  582120.,
      585200.,  588280.,  591360.,  637920.,  641440.,  644960.,  648480.,
      658440.,  662000.,  665560.,  669120.,  550515.,  553630.,  556745.,
      559860.,  568470.,  571620.,  574770.,  577920.,  465140.,  467840.,
      470540.,  473240.,  480530.,  483260.,  485990.,  488720.,  381875.,
      384150.,  386425.,  388700.,  394700.,  397000.,  399300.,  401600.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      792.,  832.,  872.,  912.,  1020., 1064., 1108., 1152., 896.,  944.,
      992.,  1040., 1156., 1208., 1260., 1312., 1000., 1056., 1112., 1168.,
      1292., 1352., 1412., 1472., 1104., 1168., 1232., 1296., 1428., 1496.,
      1564., 1632., 1208., 1280., 1352., 1424., 1564., 1640., 1716., 1792.,
      1312., 1392., 1472., 1552., 1700., 1784., 1868., 1952., 1416., 1504.,
      1592., 1680., 1836., 1928., 2020., 2112., 1624., 1728., 1832., 1936.,
      2108., 2216., 2324., 2432., 1728., 1840., 1952., 2064., 2244., 2360.,
      2476., 2592., 1832., 1952., 2072., 2192., 2380., 2504., 2628., 2752.,
      1936., 2064., 2192., 2320., 2516., 2648., 2780., 2912., 2040., 2176.,
      2312., 2448., 2652., 2792., 2932., 3072., 2144., 2288., 2432., 2576.,
      2788., 2936., 3084., 3232., 2248., 2400., 2552., 2704., 2924., 3080.,
      3236., 3392., 2456., 2624., 2792., 2960., 3196., 3368., 3540., 3712.,
      2560., 2736., 2912., 3088., 3332., 3512., 3692., 3872., 2664., 2848.,
      3032., 3216., 3468., 3656., 3844., 4032., 2768., 2960., 3152., 3344.,
      3604., 3800., 3996., 4192., 2872., 3072., 3272., 3472., 3740., 3944.,
      4148., 4352., 2976., 3184., 3392., 3600., 3876., 4088., 4300., 4512.,
      3080., 3296., 3512., 3728., 4012., 4232., 4452., 4672., 3288., 3520.,
      3752., 3984., 4284., 4520., 4756., 4992., 3392., 3632., 3872., 4112.,
      4420., 4664., 4908., 5152., 3496., 3744., 3992., 4240., 4556., 4808.,
      5060., 5312., 3600., 3856., 4112., 4368., 4692., 4952., 5212., 5472.,
      3704., 3968., 4232., 4496., 4828., 5096., 5364., 5632., 3808., 4080.,
      4352., 4624., 4964., 5240., 5516., 5792., 3912., 4192., 4472., 4752.,
      5100., 5384., 5668., 5952., 4120., 4416., 4712., 5008., 5372., 5672.,
      5972., 6272., 4224., 4528., 4832., 5136., 5508., 5816., 6124., 6432.,
      4328., 4640., 4952., 5264., 5644., 5960., 6276., 6592., 4432., 4752.,
      5072., 5392., 5780., 6104., 6428., 6752., 4536., 4864., 5192., 5520.,
      5916., 6248., 6580., 6912., 4640., 4976., 5312., 5648., 6052., 6392.,
      6732., 7072., 4744., 5088., 5432., 5776., 6188., 6536., 6884., 7232.,
      4952., 5312., 5672., 6032., 6460., 6824., 7188., 7552., 5056., 5424.,
      5792., 6160., 6596., 6968., 7340., 7712., 5160., 5536., 5912., 6288.,
      6732., 7112., 7492., 7872., 5264., 5648., 6032., 6416., 6868., 7256.,
      7644., 8032., 5368., 5760., 6152., 6544., 7004., 7400., 7796., 8192.,
      5472., 5872., 6272., 6672., 7140., 7544., 7948., 8352., 5576., 5984.,
      6392., 6800., 7276., 7688., 8100., 8512., 5784., 6208., 6632., 7056.,
      7548., 7976., 8404., 8832., 5888., 6320., 6752., 7184., 7684., 8120.,
      8556., 8992., 5992., 6432., 6872., 7312., 7820., 8264., 8708., 9152.,
      6096., 6544., 6992., 7440., 7956., 8408., 8860., 9312., 6200., 6656.,
      7112., 7568., 8092., 8552., 9012., 9472., 6304., 6768., 7232., 7696.,
      8228., 8696., 9164., 9632., 6408., 6880., 7352., 7824., 8364., 8840.,
      9316., 9792.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      382325.,  388700.,  395125.,  401600.,  465590.,  473240.,  480950.,
      488720.,  550935.,  559860.,  568855.,  577920.,  638280.,  648480.,
      658760.,  669120.,  564375.,  573300.,  582295.,  591360.,  488630.,
      496280.,  503990.,  511760.,  411125.,  417500.,  423925.,  430400.,
      531110.,  538760.,  546470.,  554240.,  643188.,  652368.,  661620.,
      670944.,  756994.,  767704.,  778498.,  789376.,  872432.,  884672.,
      897008.,  909440.,  767746.,  778456.,  789250.,  800128.,  661620.,
      670800.,  680052.,  689376.,  554150.,  561800.,  569510.,  577280.,
      692055.,  700980.,  709975.,  719040.,  834610.,  845320.,  856114.,
      866992.,  978285.,  990780.,  1003373., 1016064., 1122968., 1137248.,
      1151640., 1166144., 984557.,  997052.,  1009645., 1022336., 845362.,
      856072.,  866866.,  877744.,  705495.,  714420.,  723415.,  732480.,
      860040.,  870240.,  880520.,  890880.,  1033712., 1045952., 1058288.,
      1070720., 1207640., 1221920., 1236312., 1250816., 1381696., 1398016.,
      1414464., 1431040., 1207640., 1221920., 1236312., 1250816., 1033712.,
      1045952., 1058288., 1070720., 860040.,  870240.,  880520.,  890880.,
      705495.,  714420.,  723415.,  732480.,  845362.,  856072.,  866866.,
      877744.,  984557.,  997052.,  1009645., 1022336., 1122968., 1137248.,
      1151640., 1166144., 978285.,  990780.,  1003373., 1016064., 834610.,
      845320.,  856114.,  866992.,  692055.,  700980.,  709975.,  719040.,
      554150.,  561800.,  569510.,  577280.,  661620.,  670800.,  680052.,
      689376.,  767746.,  778456.,  789250.,  800128.,  872432.,  884672.,
      897008.,  909440.,  756994.,  767704.,  778498.,  789376.,  643188.,
      652368.,  661620.,  670944.,  531110.,  538760.,  546470.,  554240.,
      411125.,  417500.,  423925.,  430400.,  488630.,  496280.,  503990.,
      511760.,  564375.,  573300.,  582295.,  591360.,  638280.,  648480.,
      658760.,  669120.,  550935.,  559860.,  568855.,  577920.,  465590.,
      473240.,  480950.,  488720.,  382325.,  388700.,  395125.,  401600.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      804.,  912.,  1028., 1152., 916.,  1040., 1172., 1312., 1028., 1168.,
      1316., 1472., 1140., 1296., 1460., 1632., 1252., 1424., 1604., 1792.,
      1364., 1552., 1748., 1952., 1476., 1680., 1892., 2112., 1700., 1936.,
      2180., 2432., 1812., 2064., 2324., 2592., 1924., 2192., 2468., 2752.,
      2036., 2320., 2612., 2912., 2148., 2448., 2756., 3072., 2260., 2576.,
      2900., 3232., 2372., 2704., 3044., 3392., 2596., 2960., 3332., 3712.,
      2708., 3088., 3476., 3872., 2820., 3216., 3620., 4032., 2932., 3344.,
      3764., 4192., 3044., 3472., 3908., 4352., 3156., 3600., 4052., 4512.,
      3268., 3728., 4196., 4672., 3492., 3984., 4484., 4992., 3604., 4112.,
      4628., 5152., 3716., 4240., 4772., 5312., 3828., 4368., 4916., 5472.,
      3940., 4496., 5060., 5632., 4052., 4624., 5204., 5792., 4164., 4752.,
      5348., 5952., 4388., 5008., 5636., 6272., 4500., 5136., 5780., 6432.,
      4612., 5264., 5924., 6592., 4724., 5392., 6068., 6752., 4836., 5520.,
      6212., 6912., 4948., 5648., 6356., 7072., 5060., 5776., 6500., 7232.,
      5284., 6032., 6788., 7552., 5396., 6160., 6932., 7712., 5508., 6288.,
      7076., 7872., 5620., 6416., 7220., 8032., 5732., 6544., 7364., 8192.,
      5844., 6672., 7508., 8352., 5956., 6800., 7652., 8512., 6180., 7056.,
      7940., 8832., 6292., 7184., 8084., 8992., 6404., 7312., 8228., 9152.,
      6516., 7440., 8372., 9312., 6628., 7568., 8516., 9472., 6740., 7696.,
      8660., 9632., 6852., 7824., 8804., 9792.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      762825.,  764650.,  775550.,  777400.,  788375.,  790250.,  801300.,
      803200.,  928930.,  931180.,  944200.,  946480.,  959590.,  961900.,
      975100.,  977440.,  1099175., 1101870., 1116990., 1119720., 1134945.,
      1137710., 1153040., 1155840., 1273400., 1276560., 1293760., 1296960.,
      1314280., 1317520., 1334960., 1338240., 1125915., 1128750., 1143730.,
      1146600., 1161685., 1164590., 1179780., 1182720., 974770.,  977260.,
      990040.,  992560.,  1005430., 1007980., 1020940., 1023520., 820125.,
      822250.,  832850.,  835000.,  845675.,  847850.,  858600.,  860800.,
      1059550., 1062220., 1074820., 1077520., 1090210., 1092940., 1105720.,
      1108480., 1283100., 1286376., 1301424., 1304736., 1319892., 1323240.,
      1338504., 1341888., 1510082., 1513988., 1531460., 1535408., 1553006.,
      1556996., 1574720., 1578752., 1740304., 1744864., 1764736., 1769344.,
      1789360., 1794016., 1814176., 1818880., 1531418., 1535492., 1552796.,
      1556912., 1574342., 1578500., 1596056., 1600256., 1319676., 1323240.,
      1338000., 1341600., 1356468., 1360104., 1375080., 1378752., 1105270.,
      1108300., 1120540., 1123600., 1135930., 1139020., 1151440., 1154560.,
      1380435., 1384110., 1398250., 1401960., 1416205., 1419950., 1434300.,
      1438080., 1664726., 1669220., 1686104., 1690640., 1707650., 1712228.,
      1729364., 1733984., 1951229., 1956570., 1976170., 1981560., 2001307.,
      2006746., 2026640., 2032128., 2239720., 2245936., 2268224., 2274496.,
      2296952., 2303280., 2325904., 2332288., 1963577., 1969114., 1988518.,
      1994104., 2013655., 2019290., 2038988., 2044672., 1685894., 1690724.,
      1707272., 1712144., 1728818., 1733732., 1750532., 1755488., 1406895.,
      1410990., 1424710., 1428840., 1442665., 1446830., 1460760., 1464960.,
      1715240., 1720080., 1735600., 1740480., 1756120., 1761040., 1776800.,
      1781760., 2061520., 2067424., 2085952., 2091904., 2110576., 2116576.,
      2135392., 2141440., 2408280., 2415280., 2436784., 2443840., 2465512.,
      2472624., 2494464., 2501632., 2755264., 2763392., 2787840., 2796032.,
      2820672., 2828928., 2853760., 2862080., 2408056., 2415280., 2436560.,
      2443840., 2465288., 2472624., 2494240., 2501632., 2061136., 2067424.,
      2085568., 2091904., 2110192., 2116576., 2135008., 2141440., 1714760.,
      1720080., 1735120., 1740480., 1755640., 1761040., 1776320., 1781760.,
      1406195., 1410990., 1424010., 1428840., 1441965., 1446830., 1460060.,
      1464960., 1684886., 1690724., 1706264., 1712144., 1727810., 1733732.,
      1749524., 1755488., 1962205., 1969114., 1987146., 1994104., 2012283.,
      2019290., 2037616., 2044672., 2237928., 2245936., 2266432., 2274496.,
      2295160., 2303280., 2324112., 2332288., 1949465., 1956570., 1974406.,
      1981560., 1999543., 2006746., 2024876., 2032128., 1663046., 1669220.,
      1684424., 1690640., 1705970., 1712228., 1727684., 1733984., 1378895.,
      1384110., 1396710., 1401960., 1414665., 1419950., 1432760., 1438080.,
      1103710., 1108300., 1118980., 1123600., 1134370., 1139020., 1149880.,
      1154560., 1317660., 1323240., 1335984., 1341600., 1354452., 1360104.,
      1373064., 1378752., 1528898., 1535492., 1550276., 1556912., 1571822.,
      1578500., 1593536., 1600256., 1737232., 1744864., 1761664., 1769344.,
      1786288., 1794016., 1811104., 1818880., 1507226., 1513988., 1528604.,
      1535408., 1550150., 1556996., 1571864., 1578752., 1280508., 1286376.,
      1298832., 1304736., 1317300., 1323240., 1335912., 1341888., 1057270.,
      1062220., 1072540., 1077520., 1087930., 1092940., 1103440., 1108480.,
      818025.,  822250.,  830750.,  835000.,  843575.,  847850.,  856500.,
      860800.,  972130.,  977260.,  987400.,  992560.,  1002790., 1007980.,
      1018300., 1023520., 1122695., 1128750., 1140510., 1146600., 1158465.,
      1164590., 1176560., 1182720., 1269560., 1276560., 1289920., 1296960.,
      1310440., 1317520., 1331120., 1338240., 1095675., 1101870., 1113490.,
      1119720., 1131445., 1137710., 1149540., 1155840., 925810.,  931180.,
      941080.,  946480.,  956470.,  961900.,  971980.,  977440.,  760125.,
      764650.,  772850.,  777400.,  785675.,  790250.,  798600.,  803200.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1532.,  1608.,  1744.,  1824.,  1972.,  2056.,  2216.,  2304.,  1740.,
      1832.,  1984.,  2080.,  2244.,  2344.,  2520.,  2624.,  1948.,  2056.,
      2224.,  2336.,  2516.,  2632.,  2824.,  2944.,  2156.,  2280.,  2464.,
      2592.,  2788.,  2920.,  3128.,  3264.,  2364.,  2504.,  2704.,  2848.,
      3060.,  3208.,  3432.,  3584.,  2572.,  2728.,  2944.,  3104.,  3332.,
      3496.,  3736.,  3904.,  2780.,  2952.,  3184.,  3360.,  3604.,  3784.,
      4040.,  4224.,  3196.,  3400.,  3664.,  3872.,  4148.,  4360.,  4648.,
      4864.,  3404.,  3624.,  3904.,  4128.,  4420.,  4648.,  4952.,  5184.,
      3612.,  3848.,  4144.,  4384.,  4692.,  4936.,  5256.,  5504.,  3820.,
      4072.,  4384.,  4640.,  4964.,  5224.,  5560.,  5824.,  4028.,  4296.,
      4624.,  4896.,  5236.,  5512.,  5864.,  6144.,  4236.,  4520.,  4864.,
      5152.,  5508.,  5800.,  6168.,  6464.,  4444.,  4744.,  5104.,  5408.,
      5780.,  6088.,  6472.,  6784.,  4860.,  5192.,  5584.,  5920.,  6324.,
      6664.,  7080.,  7424.,  5068.,  5416.,  5824.,  6176.,  6596.,  6952.,
      7384.,  7744.,  5276.,  5640.,  6064.,  6432.,  6868.,  7240.,  7688.,
      8064.,  5484.,  5864.,  6304.,  6688.,  7140.,  7528.,  7992.,  8384.,
      5692.,  6088.,  6544.,  6944.,  7412.,  7816.,  8296.,  8704.,  5900.,
      6312.,  6784.,  7200.,  7684.,  8104.,  8600.,  9024.,  6108.,  6536.,
      7024.,  7456.,  7956.,  8392.,  8904.,  9344.,  6524.,  6984.,  7504.,
      7968.,  8500.,  8968.,  9512.,  9984.,  6732.,  7208.,  7744.,  8224.,
      8772.,  9256.,  9816.,  10304., 6940.,  7432.,  7984.,  8480.,  9044.,
      9544.,  10120., 10624., 7148.,  7656.,  8224.,  8736.,  9316.,  9832.,
      10424., 10944., 7356.,  7880.,  8464.,  8992.,  9588.,  10120., 10728.,
      11264., 7564.,  8104.,  8704.,  9248.,  9860.,  10408., 11032., 11584.,
      7772.,  8328.,  8944.,  9504.,  10132., 10696., 11336., 11904., 8188.,
      8776.,  9424.,  10016., 10676., 11272., 11944., 12544., 8396.,  9000.,
      9664.,  10272., 10948., 11560., 12248., 12864., 8604.,  9224.,  9904.,
      10528., 11220., 11848., 12552., 13184., 8812.,  9448.,  10144., 10784.,
      11492., 12136., 12856., 13504., 9020.,  9672.,  10384., 11040., 11764.,
      12424., 13160., 13824., 9228.,  9896.,  10624., 11296., 12036., 12712.,
      13464., 14144., 9436.,  10120., 10864., 11552., 12308., 13000., 13768.,
      14464., 9852.,  10568., 11344., 12064., 12852., 13576., 14376., 15104.,
      10060., 10792., 11584., 12320., 13124., 13864., 14680., 15424., 10268.,
      11016., 11824., 12576., 13396., 14152., 14984., 15744., 10476., 11240.,
      12064., 12832., 13668., 14440., 15288., 16064., 10684., 11464., 12304.,
      13088., 13940., 14728., 15592., 16384., 10892., 11688., 12544., 13344.,
      14212., 15016., 15896., 16704., 11100., 11912., 12784., 13600., 14484.,
      15304., 16200., 17024., 11516., 12360., 13264., 14112., 15028., 15880.,
      16808., 17664., 11724., 12584., 13504., 14368., 15300., 16168., 17112.,
      17984., 11932., 12808., 13744., 14624., 15572., 16456., 17416., 18304.,
      12140., 13032., 13984., 14880., 15844., 16744., 17720., 18624., 12348.,
      13256., 14224., 15136., 16116., 17032., 18024., 18944., 12556., 13480.,
      14464., 15392., 16388., 17320., 18328., 19264., 12764., 13704., 14704.,
      15648., 16660., 17608., 18632., 19584.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1523825., 1525650., 1527475., 1529300., 1549250., 1551100., 1552950.,
      1554800., 1574875., 1576750., 1578625., 1580500., 1600700., 1602600.,
      1604500., 1606400., 1855610., 1857860., 1860110., 1862360., 1886120.,
      1888400., 1890680., 1892960., 1916870., 1919180., 1921490., 1923800.,
      1947860., 1950200., 1952540., 1954880., 2195655., 2198350., 2201045.,
      2203740., 2231250., 2233980., 2236710., 2239440., 2267125., 2269890.,
      2272655., 2275420., 2303280., 2306080., 2308880., 2311680., 2543640.,
      2546800., 2549960., 2553120., 2584320., 2587520., 2590720., 2593920.,
      2625320., 2628560., 2631800., 2635040., 2666640., 2669920., 2673200.,
      2676480., 2248995., 2251830., 2254665., 2257500., 2284590., 2287460.,
      2290330., 2293200., 2320465., 2323370., 2326275., 2329180., 2356620.,
      2359560., 2362500., 2365440., 1947050., 1949540., 1952030., 1954520.,
      1977560., 1980080., 1982600., 1985120., 2008310., 2010860., 2013410.,
      2015960., 2039300., 2041880., 2044460., 2047040., 1638125., 1640250.,
      1642375., 1644500., 1663550., 1665700., 1667850., 1670000., 1689175.,
      1691350., 1693525., 1695700., 1715000., 1717200., 1719400., 1721600.,
      2116430., 2119100., 2121770., 2124440., 2146940., 2149640., 2152340.,
      2155040., 2177690., 2180420., 2183150., 2185880., 2208680., 2211440.,
      2214200., 2216960., 2562924., 2566200., 2569476., 2572752., 2599536.,
      2602848., 2606160., 2609472., 2636436., 2639784., 2643132., 2646480.,
      2673624., 2677008., 2680392., 2683776., 3016258., 3020164., 3024070.,
      3027976., 3058972., 3062920., 3066868., 3070816., 3102022., 3106012.,
      3110002., 3113992., 3145408., 3149440., 3153472., 3157504., 3476048.,
      3480608., 3485168., 3489728., 3524864., 3529472., 3534080., 3538688.,
      3574064., 3578720., 3583376., 3588032., 3623648., 3628352., 3633056.,
      3637760., 3058762., 3062836., 3066910., 3070984., 3101476., 3105592.,
      3109708., 3113824., 3144526., 3148684., 3152842., 3157000., 3187912.,
      3192112., 3196312., 3200512., 2635788., 2639352., 2642916., 2646480.,
      2672400., 2676000., 2679600., 2683200., 2709300., 2712936., 2716572.,
      2720208., 2746488., 2750160., 2753832., 2757504., 2207510., 2210540.,
      2213570., 2216600., 2238020., 2241080., 2244140., 2247200., 2268770.,
      2271860., 2274950., 2278040., 2299760., 2302880., 2306000., 2309120.,
      2757195., 2760870., 2764545., 2768220., 2792790., 2796500., 2800210.,
      2803920., 2828665., 2832410., 2836155., 2839900., 2864820., 2868600.,
      2872380., 2876160., 3324958., 3329452., 3333946., 3338440., 3367672.,
      3372208., 3376744., 3381280., 3410722., 3415300., 3419878., 3424456.,
      3454108., 3458728., 3463348., 3467968., 3897117., 3902458., 3907799.,
      3913140., 3946950., 3952340., 3957730., 3963120., 3997175., 4002614.,
      4008053., 4013492., 4047792., 4053280., 4058768., 4064256., 4473224.,
      4479440., 4485656., 4491872., 4530176., 4536448., 4542720., 4548992.,
      4587576., 4593904., 4600232., 4606560., 4645424., 4651808., 4658192.,
      4664576., 3921617., 3927154., 3932691., 3938228., 3971450., 3977036.,
      3982622., 3988208., 4021675., 4027310., 4032945., 4038580., 4072292.,
      4077976., 4083660., 4089344., 3366958., 3371788., 3376618., 3381448.,
      3409672., 3414544., 3419416., 3424288., 3452722., 3457636., 3462550.,
      3467464., 3496108., 3501064., 3506020., 3510976., 2809695., 2813790.,
      2817885., 2821980., 2845290., 2849420., 2853550., 2857680., 2881165.,
      2885330., 2889495., 2893660., 2917320., 2921520., 2925720., 2929920.,
      3425640., 3430480., 3435320., 3440160., 3466320., 3471200., 3476080.,
      3480960., 3507320., 3512240., 3517160., 3522080., 3548640., 3553600.,
      3558560., 3563520., 4117136., 4123040., 4128944., 4134848., 4165952.,
      4171904., 4177856., 4183808., 4215152., 4221152., 4227152., 4233152.,
      4264736., 4270784., 4276832., 4282880., 4809560., 4816560., 4823560.,
      4830560., 4866512., 4873568., 4880624., 4887680., 4923912., 4931024.,
      4938136., 4945248., 4981760., 4988928., 4996096., 5003264., 5502400.,
      5510528., 5518656., 5526784., 5567488., 5575680., 5583872., 5592064.,
      5633088., 5641344., 5649600., 5657856., 5699200., 5707520., 5715840.,
      5724160., 4808888., 4816112., 4823336., 4830560., 4865840., 4873120.,
      4880400., 4887680., 4923240., 4930576., 4937912., 4945248., 4981088.,
      4988480., 4995872., 5003264., 4115984., 4122272., 4128560., 4134848.,
      4164800., 4171136., 4177472., 4183808., 4214000., 4220384., 4226768.,
      4233152., 4263584., 4270016., 4276448., 4282880., 3424200., 3429520.,
      3434840., 3440160., 3464880., 3470240., 3475600., 3480960., 3505880.,
      3511280., 3516680., 3522080., 3547200., 3552640., 3558080., 3563520.,
      2807595., 2812390., 2817185., 2821980., 2843190., 2848020., 2852850.,
      2857680., 2879065., 2883930., 2888795., 2893660., 2915220., 2920120.,
      2925020., 2929920., 3363934., 3369772., 3375610., 3381448., 3406648.,
      3412528., 3418408., 3424288., 3449698., 3455620., 3461542., 3467464.,
      3493084., 3499048., 3505012., 3510976., 3917501., 3924410., 3931319.,
      3938228., 3967334., 3974292., 3981250., 3988208., 4017559., 4024566.,
      4031573., 4038580., 4068176., 4075232., 4082288., 4089344., 4467848.,
      4475856., 4483864., 4491872., 4524800., 4532864., 4540928., 4548992.,
      4582200., 4590320., 4598440., 4606560., 4640048., 4648224., 4656400.,
      4664576., 3891825., 3898930., 3906035., 3913140., 3941658., 3948812.,
      3955966., 3963120., 3991883., 3999086., 4006289., 4013492., 4042500.,
      4049752., 4057004., 4064256., 3319918., 3326092., 3332266., 3338440.,
      3362632., 3368848., 3375064., 3381280., 3405682., 3411940., 3418198.,
      3424456., 3449068., 3455368., 3461668., 3467968., 2752575., 2757790.,
      2763005., 2768220., 2788170., 2793420., 2798670., 2803920., 2824045.,
      2829330., 2834615., 2839900., 2860200., 2865520., 2870840., 2876160.,
      2202830., 2207420., 2212010., 2216600., 2233340., 2237960., 2242580.,
      2247200., 2264090., 2268740., 2273390., 2278040., 2295080., 2299760.,
      2304440., 2309120., 2629740., 2635320., 2640900., 2646480., 2666352.,
      2671968., 2677584., 2683200., 2703252., 2708904., 2714556., 2720208.,
      2740440., 2746128., 2751816., 2757504., 3051202., 3057796., 3064390.,
      3070984., 3093916., 3100552., 3107188., 3113824., 3136966., 3143644.,
      3150322., 3157000., 3180352., 3187072., 3193792., 3200512., 3466832.,
      3474464., 3482096., 3489728., 3515648., 3523328., 3531008., 3538688.,
      3564848., 3572576., 3580304., 3588032., 3614432., 3622208., 3629984.,
      3637760., 3007690., 3014452., 3021214., 3027976., 3050404., 3057208.,
      3064012., 3070816., 3093454., 3100300., 3107146., 3113992., 3136840.,
      3143728., 3150616., 3157504., 2555148., 2561016., 2566884., 2572752.,
      2591760., 2597664., 2603568., 2609472., 2628660., 2634600., 2640540.,
      2646480., 2665848., 2671824., 2677800., 2683776., 2109590., 2114540.,
      2119490., 2124440., 2140100., 2145080., 2150060., 2155040., 2170850.,
      2175860., 2180870., 2185880., 2201840., 2206880., 2211920., 2216960.,
      1631825., 1636050., 1640275., 1644500., 1657250., 1661500., 1665750.,
      1670000., 1682875., 1687150., 1691425., 1695700., 1708700., 1713000.,
      1717300., 1721600., 1939130., 1944260., 1949390., 1954520., 1969640.,
      1974800., 1979960., 1985120., 2000390., 2005580., 2010770., 2015960.,
      2031380., 2036600., 2041820., 2047040., 2239335., 2245390., 2251445.,
      2257500., 2274930., 2281020., 2287110., 2293200., 2310805., 2316930.,
      2323055., 2329180., 2346960., 2353120., 2359280., 2365440., 2532120.,
      2539120., 2546120., 2553120., 2572800., 2579840., 2586880., 2593920.,
      2613800., 2620880., 2627960., 2635040., 2655120., 2662240., 2669360.,
      2676480., 2185155., 2191350., 2197545., 2203740., 2220750., 2226980.,
      2233210., 2239440., 2256625., 2262890., 2269155., 2275420., 2292780.,
      2299080., 2305380., 2311680., 1846250., 1851620., 1856990., 1862360.,
      1876760., 1882160., 1887560., 1892960., 1907510., 1912940., 1918370.,
      1923800., 1938500., 1943960., 1949420., 1954880., 1515725., 1520250.,
      1524775., 1529300., 1541150., 1545700., 1550250., 1554800., 1566775.,
      1571350., 1575925., 1580500., 1592600., 1597200., 1601800., 1606400.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2988.,  3064.,  3140.,  3216.,  3408.,  3488.,  3568.,  3648.,  3860.,
      3944.,  4028.,  4112.,  4344.,  4432.,  4520.,  4608.,  3388.,  3480.,
      3572.,  3664.,  3872.,  3968.,  4064.,  4160.,  4388.,  4488.,  4588.,
      4688.,  4936.,  5040.,  5144.,  5248.,  3788.,  3896.,  4004.,  4112.,
      4336.,  4448.,  4560.,  4672.,  4916.,  5032.,  5148.,  5264.,  5528.,
      5648.,  5768.,  5888.,  4188.,  4312.,  4436.,  4560.,  4800.,  4928.,
      5056.,  5184.,  5444.,  5576.,  5708.,  5840.,  6120.,  6256.,  6392.,
      6528.,  4588.,  4728.,  4868.,  5008.,  5264.,  5408.,  5552.,  5696.,
      5972.,  6120.,  6268.,  6416.,  6712.,  6864.,  7016.,  7168.,  4988.,
      5144.,  5300.,  5456.,  5728.,  5888.,  6048.,  6208.,  6500.,  6664.,
      6828.,  6992.,  7304.,  7472.,  7640.,  7808.,  5388.,  5560.,  5732.,
      5904.,  6192.,  6368.,  6544.,  6720.,  7028.,  7208.,  7388.,  7568.,
      7896.,  8080.,  8264.,  8448.,  6188.,  6392.,  6596.,  6800.,  7120.,
      7328.,  7536.,  7744.,  8084.,  8296.,  8508.,  8720.,  9080.,  9296.,
      9512.,  9728.,  6588.,  6808.,  7028.,  7248.,  7584.,  7808.,  8032.,
      8256.,  8612.,  8840.,  9068.,  9296.,  9672.,  9904.,  10136., 10368.,
      6988.,  7224.,  7460.,  7696.,  8048.,  8288.,  8528.,  8768.,  9140.,
      9384.,  9628.,  9872.,  10264., 10512., 10760., 11008., 7388.,  7640.,
      7892.,  8144.,  8512.,  8768.,  9024.,  9280.,  9668.,  9928.,  10188.,
      10448., 10856., 11120., 11384., 11648., 7788.,  8056.,  8324.,  8592.,
      8976.,  9248.,  9520.,  9792.,  10196., 10472., 10748., 11024., 11448.,
      11728., 12008., 12288., 8188.,  8472.,  8756.,  9040.,  9440.,  9728.,
      10016., 10304., 10724., 11016., 11308., 11600., 12040., 12336., 12632.,
      12928., 8588.,  8888.,  9188.,  9488.,  9904.,  10208., 10512., 10816.,
      11252., 11560., 11868., 12176., 12632., 12944., 13256., 13568., 9388.,
      9720.,  10052., 10384., 10832., 11168., 11504., 11840., 12308., 12648.,
      12988., 13328., 13816., 14160., 14504., 14848., 9788.,  10136., 10484.,
      10832., 11296., 11648., 12000., 12352., 12836., 13192., 13548., 13904.,
      14408., 14768., 15128., 15488., 10188., 10552., 10916., 11280., 11760.,
      12128., 12496., 12864., 13364., 13736., 14108., 14480., 15000., 15376.,
      15752., 16128., 10588., 10968., 11348., 11728., 12224., 12608., 12992.,
      13376., 13892., 14280., 14668., 15056., 15592., 15984., 16376., 16768.,
      10988., 11384., 11780., 12176., 12688., 13088., 13488., 13888., 14420.,
      14824., 15228., 15632., 16184., 16592., 17000., 17408., 11388., 11800.,
      12212., 12624., 13152., 13568., 13984., 14400., 14948., 15368., 15788.,
      16208., 16776., 17200., 17624., 18048., 11788., 12216., 12644., 13072.,
      13616., 14048., 14480., 14912., 15476., 15912., 16348., 16784., 17368.,
      17808., 18248., 18688., 12588., 13048., 13508., 13968., 14544., 15008.,
      15472., 15936., 16532., 17000., 17468., 17936., 18552., 19024., 19496.,
      19968., 12988., 13464., 13940., 14416., 15008., 15488., 15968., 16448.,
      17060., 17544., 18028., 18512., 19144., 19632., 20120., 20608., 13388.,
      13880., 14372., 14864., 15472., 15968., 16464., 16960., 17588., 18088.,
      18588., 19088., 19736., 20240., 20744., 21248., 13788., 14296., 14804.,
      15312., 15936., 16448., 16960., 17472., 18116., 18632., 19148., 19664.,
      20328., 20848., 21368., 21888., 14188., 14712., 15236., 15760., 16400.,
      16928., 17456., 17984., 18644., 19176., 19708., 20240., 20920., 21456.,
      21992., 22528., 14588., 15128., 15668., 16208., 16864., 17408., 17952.,
      18496., 19172., 19720., 20268., 20816., 21512., 22064., 22616., 23168.,
      14988., 15544., 16100., 16656., 17328., 17888., 18448., 19008., 19700.,
      20264., 20828., 21392., 22104., 22672., 23240., 23808., 15788., 16376.,
      16964., 17552., 18256., 18848., 19440., 20032., 20756., 21352., 21948.,
      22544., 23288., 23888., 24488., 25088., 16188., 16792., 17396., 18000.,
      18720., 19328., 19936., 20544., 21284., 21896., 22508., 23120., 23880.,
      24496., 25112., 25728., 16588., 17208., 17828., 18448., 19184., 19808.,
      20432., 21056., 21812., 22440., 23068., 23696., 24472., 25104., 25736.,
      26368., 16988., 17624., 18260., 18896., 19648., 20288., 20928., 21568.,
      22340., 22984., 23628., 24272., 25064., 25712., 26360., 27008., 17388.,
      18040., 18692., 19344., 20112., 20768., 21424., 22080., 22868., 23528.,
      24188., 24848., 25656., 26320., 26984., 27648., 17788., 18456., 19124.,
      19792., 20576., 21248., 21920., 22592., 23396., 24072., 24748., 25424.,
      26248., 26928., 27608., 28288., 18188., 18872., 19556., 20240., 21040.,
      21728., 22416., 23104., 23924., 24616., 25308., 26000., 26840., 27536.,
      28232., 28928., 18988., 19704., 20420., 21136., 21968., 22688., 23408.,
      24128., 24980., 25704., 26428., 27152., 28024., 28752., 29480., 30208.,
      19388., 20120., 20852., 21584., 22432., 23168., 23904., 24640., 25508.,
      26248., 26988., 27728., 28616., 29360., 30104., 30848., 19788., 20536.,
      21284., 22032., 22896., 23648., 24400., 25152., 26036., 26792., 27548.,
      28304., 29208., 29968., 30728., 31488., 20188., 20952., 21716., 22480.,
      23360., 24128., 24896., 25664., 26564., 27336., 28108., 28880., 29800.,
      30576., 31352., 32128., 20588., 21368., 22148., 22928., 23824., 24608.,
      25392., 26176., 27092., 27880., 28668., 29456., 30392., 31184., 31976.,
      32768., 20988., 21784., 22580., 23376., 24288., 25088., 25888., 26688.,
      27620., 28424., 29228., 30032., 30984., 31792., 32600., 33408., 21388.,
      22200., 23012., 23824., 24752., 25568., 26384., 27200., 28148., 28968.,
      29788., 30608., 31576., 32400., 33224., 34048., 22188., 23032., 23876.,
      24720., 25680., 26528., 27376., 28224., 29204., 30056., 30908., 31760.,
      32760., 33616., 34472., 35328., 22588., 23448., 24308., 25168., 26144.,
      27008., 27872., 28736., 29732., 30600., 31468., 32336., 33352., 34224.,
      35096., 35968., 22988., 23864., 24740., 25616., 26608., 27488., 28368.,
      29248., 30260., 31144., 32028., 32912., 33944., 34832., 35720., 36608.,
      23388., 24280., 25172., 26064., 27072., 27968., 28864., 29760., 30788.,
      31688., 32588., 33488., 34536., 35440., 36344., 37248., 23788., 24696.,
      25604., 26512., 27536., 28448., 29360., 30272., 31316., 32232., 33148.,
      34064., 35128., 36048., 36968., 37888., 24188., 25112., 26036., 26960.,
      28000., 28928., 29856., 30784., 31844., 32776., 33708., 34640., 35720.,
      36656., 37592., 38528., 24588., 25528., 26468., 27408., 28464., 29408.,
      30352., 31296., 32372., 33320., 34268., 35216., 36312., 37264., 38216.,
      39168.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      38165., 45080., 52140.,  59340.,  53220.,  46970., 40595.,
      52602., 61845., 71208.,  80685.,  72072.,  63357., 54546.,
      68173., 79870., 91644.,  103488., 92148.,  80752., 69307.,
      84392., 98588., 112800., 127020., 112800., 98588., 84392.,
      69307., 80752., 92148.,  103488., 91644.,  79870., 68173.,
      54546., 63357., 72072.,  80685.,  71208.,  61845., 52602.,
      40595., 46970., 53220.,  59340.,  52140.,  45080., 38165.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      181.,  202.,  223.,  244.,  265.,  286.,  307.,  370.,  391.,  412.,
      433.,  454.,  475.,  496.,  559.,  580.,  601.,  622.,  643.,  664.,
      685.,  748.,  769.,  790.,  811.,  832.,  853.,  874.,  937.,  958.,
      979.,  1000., 1021., 1042., 1063., 1126., 1147., 1168., 1189., 1210.,
      1231., 1252., 1315., 1336., 1357., 1378., 1399., 1420., 1441.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      75685.,  76330.,  89390.,  90160.,  103380., 104280., 117645., 118680.,
      105500., 106440., 93100.,  93940.,  80455.,  81190.,  104268., 105204.,
      122577., 123690., 141120., 142416., 159885., 161370., 142800., 144144.,
      125517., 126714., 108048., 109092., 135065., 136346., 158221., 159740.,
      181524., 183288., 204960., 206976., 182476., 184296., 159887., 161504.,
      137207., 138614., 167104., 168784., 195188., 197176., 223296., 225600.,
      251412., 254040., 223232., 225600., 195076., 197176., 166960., 168784.,
      136955., 138614., 159544., 161504., 182028., 184296., 204393., 206976.,
      180964., 183288., 157682., 159740., 134561., 136346., 107508., 109092.,
      124845., 126714., 141984., 144144., 158913., 161370., 140208., 142416.,
      121737., 123690., 103512., 105204., 79735.,  81190.,  92225.,  93940.,
      104460., 106440., 116430., 118680., 102260., 104280., 88375.,  90160.,
      74785.,  76330.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      323.,  362.,  359.,  404.,  395.,  446.,  431.,  488.,  467.,  530.,
      503.,  572.,  539.,  614.,  647.,  740.,  683.,  782.,  719.,  824.,
      755.,  866.,  791.,  908.,  827.,  950.,  863.,  992.,  971.,  1118.,
      1007., 1160., 1043., 1202., 1079., 1244., 1115., 1286., 1151., 1328.,
      1187., 1370., 1295., 1496., 1331., 1538., 1367., 1580., 1403., 1622.,
      1439., 1664., 1475., 1706., 1511., 1748., 1619., 1874., 1655., 1916.,
      1691., 1958., 1727., 2000., 1763., 2042., 1799., 2084., 1835., 2126.,
      1943., 2252., 1979., 2294., 2015., 2336., 2051., 2378., 2087., 2420.,
      2123., 2462., 2159., 2504., 2267., 2630., 2303., 2672., 2339., 2714.,
      2375., 2756., 2411., 2798., 2447., 2840., 2483., 2882.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      150725., 151370., 152015., 152660., 178010., 178780., 179550., 180320.,
      205860., 206760., 207660., 208560., 234255., 235290., 236325., 237360.,
      210060., 211000., 211940., 212880., 185360., 186200., 187040., 187880.,
      160175., 160910., 161645., 162380., 207600., 208536., 209472., 210408.,
      244041., 245154., 246267., 247380., 280944., 282240., 283536., 284832.,
      318285., 319770., 321255., 322740., 284256., 285600., 286944., 288288.,
      249837., 251034., 252231., 253428., 215052., 216096., 217140., 218184.,
      268849., 270130., 271411., 272692., 314923., 316442., 317961., 319480.,
      361284., 363048., 364812., 366576., 407904., 409920., 411936., 413952.,
      363132., 364952., 366772., 368592., 318157., 319774., 321391., 323008.,
      273007., 274414., 275821., 277228., 332528., 334208., 335888., 337568.,
      388388., 390376., 392364., 394352., 444288., 446592., 448896., 451200.,
      500196., 502824., 505452., 508080., 444096., 446464., 448832., 451200.,
      388052., 390152., 392252., 394352., 332096., 333920., 335744., 337568.,
      272251., 273910., 275569., 277228., 317128., 319088., 321048., 323008.,
      361788., 364056., 366324., 368592., 406203., 408786., 411369., 413952.,
      359604., 361928., 364252., 366576., 313306., 315364., 317422., 319480.,
      267337., 269122., 270907., 272692., 213432., 215016., 216600., 218184.,
      247821., 249690., 251559., 253428., 281808., 283968., 286128., 288288.,
      315369., 317826., 320283., 322740., 278208., 280416., 282624., 284832.,
      241521., 243474., 245427., 247380., 205332., 207024., 208716., 210408.,
      158015., 159470., 160925., 162380., 182735., 184450., 186165., 187880.,
      206940., 208920., 210900., 212880., 230610., 232860., 235110., 237360.,
      202500., 204520., 206540., 208560., 174965., 176750., 178535., 180320.,
      148025., 149570., 151115., 152660.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      607.,  646.,  685.,  724.,  673.,  718.,  763.,  808.,  739.,  790.,
      841.,  892.,  805.,  862.,  919.,  976.,  871.,  934.,  997.,  1060.,
      937.,  1006., 1075., 1144., 1003., 1078., 1153., 1228., 1201., 1294.,
      1387., 1480., 1267., 1366., 1465., 1564., 1333., 1438., 1543., 1648.,
      1399., 1510., 1621., 1732., 1465., 1582., 1699., 1816., 1531., 1654.,
      1777., 1900., 1597., 1726., 1855., 1984., 1795., 1942., 2089., 2236.,
      1861., 2014., 2167., 2320., 1927., 2086., 2245., 2404., 1993., 2158.,
      2323., 2488., 2059., 2230., 2401., 2572., 2125., 2302., 2479., 2656.,
      2191., 2374., 2557., 2740., 2389., 2590., 2791., 2992., 2455., 2662.,
      2869., 3076., 2521., 2734., 2947., 3160., 2587., 2806., 3025., 3244.,
      2653., 2878., 3103., 3328., 2719., 2950., 3181., 3412., 2785., 3022.,
      3259., 3496., 2983., 3238., 3493., 3748., 3049., 3310., 3571., 3832.,
      3115., 3382., 3649., 3916., 3181., 3454., 3727., 4000., 3247., 3526.,
      3805., 4084., 3313., 3598., 3883., 4168., 3379., 3670., 3961., 4252.,
      3577., 3886., 4195., 4504., 3643., 3958., 4273., 4588., 3709., 4030.,
      4351., 4672., 3775., 4102., 4429., 4756., 3841., 4174., 4507., 4840.,
      3907., 4246., 4585., 4924., 3973., 4318., 4663., 5008., 4171., 4534.,
      4897., 5260., 4237., 4606., 4975., 5344., 4303., 4678., 5053., 5428.,
      4369., 4750., 5131., 5512., 4435., 4822., 5209., 5596., 4501., 4894.,
      5287., 5680., 4567., 4966., 5365., 5764.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      148310., 152660., 175245., 180320., 202760., 208560., 230835., 237360.,
      207080., 212880., 182805., 187880., 158030., 162380., 205188., 210408.,
      241290., 247380., 277872., 284832., 314910., 322740., 281328., 288288.,
      247338., 253428., 212964., 218184., 266602., 272692., 312375., 319480.,
      358456., 366576., 404817., 413952., 360472., 368592., 315903., 323008.,
      271138., 277228., 330608., 337568., 386232., 394352., 441920., 451200.,
      497640., 508080., 441920., 451200., 386232., 394352., 330608., 337568.,
      271138., 277228., 315903., 323008., 360472., 368592., 404817., 413952.,
      358456., 366576., 312375., 319480., 266602., 272692., 212964., 218184.,
      247338., 253428., 281328., 288288., 314910., 322740., 277872., 284832.,
      241290., 247380., 205188., 210408., 158030., 162380., 182805., 187880.,
      207080., 212880., 230835., 237360., 202760., 208560., 175245., 180320.,
      148310., 152660.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      610.,  724.,  682.,  808.,  754.,  892.,  826.,  976.,  898.,  1060.,
      970.,  1144., 1042., 1228., 1258., 1480., 1330., 1564., 1402., 1648.,
      1474., 1732., 1546., 1816., 1618., 1900., 1690., 1984., 1906., 2236.,
      1978., 2320., 2050., 2404., 2122., 2488., 2194., 2572., 2266., 2656.,
      2338., 2740., 2554., 2992., 2626., 3076., 2698., 3160., 2770., 3244.,
      2842., 3328., 2914., 3412., 2986., 3496., 3202., 3748., 3274., 3832.,
      3346., 3916., 3418., 4000., 3490., 4084., 3562., 4168., 3634., 4252.,
      3850., 4504., 3922., 4588., 3994., 4672., 4066., 4756., 4138., 4840.,
      4210., 4924., 4282., 5008., 4498., 5260., 4570., 5344., 4642., 5428.,
      4714., 5512., 4786., 5596., 4858., 5680., 4930., 5764.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      295360., 296620., 304030.,  305320.,  348985., 350490., 359100., 360640.,
      403760., 405520., 415320.,  417120.,  459645., 461670., 472650., 474720.,
      412320., 414160., 423880.,  425760.,  363965., 365610., 374080., 375760.,
      314620., 316060., 323290.,  324760.,  408540., 410376., 418944., 420816.,
      480396., 482580., 492534.,  494760.,  553200., 555744., 567072., 569664.,
      626904., 629820., 642510.,  645480.,  560016., 562656., 573888., 576576.,
      492324., 494676., 504462.,  506856.,  423876., 425928., 434280., 436368.,
      530684., 533204., 542822.,  545384.,  621761., 624750., 635922., 638960.,
      713440., 716912., 729624.,  733152.,  805665., 809634., 823872., 827904.,
      717360., 720944., 733544.,  737184.,  628621., 631806., 642782., 646016.,
      539504., 542276., 551642.,  554456.,  657904., 661216., 671776., 675136.,
      768544., 772464., 784728.,  788704.,  879296., 883840., 897792., 902400.,
      990096., 995280., 1010904., 1016160., 879168., 883840., 897664., 902400.,
      768320., 772464., 784504.,  788704.,  657616., 661216., 671488., 675136.,
      539000., 542276., 551138.,  554456.,  627935., 631806., 642096., 646016.,
      716464., 720944., 732648.,  737184.,  804531., 809634., 822738., 827904.,
      712320., 716912., 728504.,  733152.,  620683., 624750., 634844., 638960.,
      529676., 533204., 541814.,  545384.,  422796., 425928., 433200., 436368.,
      490980., 494676., 503118.,  506856.,  558384., 562656., 572256., 576576.,
      624960., 629820., 640566.,  645480.,  551376., 555744., 565248., 569664.,
      478716., 482580., 490854.,  494760.,  407028., 410376., 417432., 420816.,
      313180., 316060., 321850.,  324760.,  362215., 365610., 372330., 375760.,
      410240., 414160., 421800.,  425760.,  457215., 461670., 470220., 474720.,
      401520., 405520., 413080.,  417120.,  346955., 350490., 357070., 360640.,
      293560., 296620., 302230.,  305320.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1148.,  1220.,  1370.,  1448.,  1280.,  1364.,  1526.,  1616.,  1412.,
      1508.,  1682.,  1784.,  1544.,  1652.,  1838.,  1952.,  1676.,  1796.,
      1994.,  2120.,  1808.,  1940.,  2150.,  2288.,  1940.,  2084.,  2306.,
      2456.,  2336.,  2516.,  2774.,  2960.,  2468.,  2660.,  2930.,  3128.,
      2600.,  2804.,  3086.,  3296.,  2732.,  2948.,  3242.,  3464.,  2864.,
      3092.,  3398.,  3632.,  2996.,  3236.,  3554.,  3800.,  3128.,  3380.,
      3710.,  3968.,  3524.,  3812.,  4178.,  4472.,  3656.,  3956.,  4334.,
      4640.,  3788.,  4100.,  4490.,  4808.,  3920.,  4244.,  4646.,  4976.,
      4052.,  4388.,  4802.,  5144.,  4184.,  4532.,  4958.,  5312.,  4316.,
      4676.,  5114.,  5480.,  4712.,  5108.,  5582.,  5984.,  4844.,  5252.,
      5738.,  6152.,  4976.,  5396.,  5894.,  6320.,  5108.,  5540.,  6050.,
      6488.,  5240.,  5684.,  6206.,  6656.,  5372.,  5828.,  6362.,  6824.,
      5504.,  5972.,  6518.,  6992.,  5900.,  6404.,  6986.,  7496.,  6032.,
      6548.,  7142.,  7664.,  6164.,  6692.,  7298.,  7832.,  6296.,  6836.,
      7454.,  8000.,  6428.,  6980.,  7610.,  8168.,  6560.,  7124.,  7766.,
      8336.,  6692.,  7268.,  7922.,  8504.,  7088.,  7700.,  8390.,  9008.,
      7220.,  7844.,  8546.,  9176.,  7352.,  7988.,  8702.,  9344.,  7484.,
      8132.,  8858.,  9512.,  7616.,  8276.,  9014.,  9680.,  7748.,  8420.,
      9170.,  9848.,  7880.,  8564.,  9326.,  10016., 8276.,  8996.,  9794.,
      10520., 8408.,  9140.,  9950.,  10688., 8540.,  9284.,  10106., 10856.,
      8672.,  9428.,  10262., 11024., 8804.,  9572.,  10418., 11192., 8936.,
      9716.,  10574., 11360., 9068.,  9860.,  10730., 11528.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      589460.,  590720.,  591980.,  593240.,  606770.,  608060.,  609350.,
      610640.,  696465.,  697970.,  699475.,  700980.,  716660.,  718200.,
      719740.,  721280.,  805760.,  807520.,  809280.,  811040.,  828840.,
      830640.,  832440.,  834240.,  917265.,  919290.,  921315.,  923340.,
      943230.,  945300.,  947370.,  949440.,  822800.,  824640.,  826480.,
      828320.,  845880.,  847760.,  849640.,  851520.,  726285.,  727930.,
      729575.,  731220.,  746480.,  748160.,  749840.,  751520.,  627800.,
      629240.,  630680.,  632120.,  645110.,  646580.,  648050.,  649520.,
      815244.,  817080.,  818916.,  820752.,  836016.,  837888.,  839760.,
      841632.,  958608.,  960792.,  962976.,  965160.,  982842.,  985068.,
      987294.,  989520.,  1103856., 1106400., 1108944., 1111488., 1131552.,
      1134144., 1136736., 1139328., 1250892., 1253808., 1256724., 1259640.,
      1282050., 1285020., 1287990., 1290960., 1117392., 1120032., 1122672.,
      1125312., 1145088., 1147776., 1150464., 1153152., 982296.,  984648.,
      987000.,  989352.,  1006530., 1008924., 1011318., 1013712., 845700.,
      847752.,  849804.,  851856.,  866472.,  868560.,  870648.,  872736.,
      1058848., 1061368., 1063888., 1066408., 1083082., 1085644., 1088206.,
      1090768., 1240533., 1243522., 1246511., 1249500., 1268806., 1271844.,
      1274882., 1277920., 1423408., 1426880., 1430352., 1433824., 1455720.,
      1459248., 1462776., 1466304., 1607361., 1611330., 1615299., 1619268.,
      1643712., 1647744., 1651776., 1655808., 1431136., 1434720., 1438304.,
      1441888., 1463448., 1467088., 1470728., 1474368., 1254057., 1257242.,
      1260427., 1263612., 1282330., 1285564., 1288798., 1292032., 1076236.,
      1079008., 1081780., 1084552., 1100470., 1103284., 1106098., 1108912.,
      1312496., 1315808., 1319120., 1322432., 1340192., 1343552., 1346912.,
      1350272., 1533168., 1537088., 1541008., 1544928., 1565480., 1569456.,
      1573432., 1577408., 1754048., 1758592., 1763136., 1767680., 1790976.,
      1795584., 1800192., 1804800., 1975008., 1980192., 1985376., 1990560.,
      2016552., 2021808., 2027064., 2032320., 1753664., 1758336., 1763008.,
      1767680., 1790592., 1795328., 1800064., 1804800., 1532496., 1536640.,
      1540784., 1544928., 1564808., 1569008., 1573208., 1577408., 1311632.,
      1315232., 1318832., 1322432., 1339328., 1342976., 1346624., 1350272.,
      1074724., 1078000., 1081276., 1084552., 1098958., 1102276., 1105594.,
      1108912., 1251999., 1255870., 1259741., 1263612., 1280272., 1284192.,
      1288112., 1292032., 1428448., 1432928., 1437408., 1441888., 1460760.,
      1465296., 1469832., 1474368., 1603959., 1609062., 1614165., 1619268.,
      1640310., 1645476., 1650642., 1655808., 1420048., 1424640., 1429232.,
      1433824., 1452360., 1457008., 1461656., 1466304., 1237299., 1241366.,
      1245433., 1249500., 1265572., 1269688., 1273804., 1277920., 1055824.,
      1059352., 1062880., 1066408., 1080058., 1083628., 1087198., 1090768.,
      842460.,  845592.,  848724.,  851856.,  863232.,  866400.,  869568.,
      872736.,  978264.,  981960.,  985656.,  989352.,  1002498., 1006236.,
      1009974., 1013712., 1112496., 1116768., 1121040., 1125312., 1140192.,
      1144512., 1148832., 1153152., 1245060., 1249920., 1254780., 1259640.,
      1276218., 1281132., 1286046., 1290960., 1098384., 1102752., 1107120.,
      1111488., 1126080., 1130496., 1134912., 1139328., 953568.,  957432.,
      961296.,  965160.,  977802.,  981708.,  985614.,  989520.,  810708.,
      814056.,  817404.,  820752.,  831480.,  834864.,  838248.,  841632.,
      623480.,  626360.,  629240.,  632120.,  640790.,  643700.,  646610.,
      649520.,  721035.,  724430.,  727825.,  731220.,  741230.,  744660.,
      748090.,  751520.,  816560.,  820480.,  824400.,  828320.,  839640.,
      843600.,  847560.,  851520.,  909975.,  914430.,  918885.,  923340.,
      935940.,  940440.,  944940.,  949440.,  799040.,  803040.,  807040.,
      811040.,  822120.,  826160.,  830200.,  834240.,  690375.,  693910.,
      697445.,  700980.,  710570.,  714140.,  717710.,  721280.,  584060.,
      587120.,  590180.,  593240.,  601370.,  604460.,  607550.,  610640.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2224.,  2296.,  2368.,  2440.,  2662.,  2740.,  2818.,  2896.,  2476.,
      2560.,  2644.,  2728.,  2962.,  3052.,  3142.,  3232.,  2728.,  2824.,
      2920.,  3016.,  3262.,  3364.,  3466.,  3568.,  2980.,  3088.,  3196.,
      3304.,  3562.,  3676.,  3790.,  3904.,  3232.,  3352.,  3472.,  3592.,
      3862.,  3988.,  4114.,  4240.,  3484.,  3616.,  3748.,  3880.,  4162.,
      4300.,  4438.,  4576.,  3736.,  3880.,  4024.,  4168.,  4462.,  4612.,
      4762.,  4912.,  4492.,  4672.,  4852.,  5032.,  5362.,  5548.,  5734.,
      5920.,  4744.,  4936.,  5128.,  5320.,  5662.,  5860.,  6058.,  6256.,
      4996.,  5200.,  5404.,  5608.,  5962.,  6172.,  6382.,  6592.,  5248.,
      5464.,  5680.,  5896.,  6262.,  6484.,  6706.,  6928.,  5500.,  5728.,
      5956.,  6184.,  6562.,  6796.,  7030.,  7264.,  5752.,  5992.,  6232.,
      6472.,  6862.,  7108.,  7354.,  7600.,  6004.,  6256.,  6508.,  6760.,
      7162.,  7420.,  7678.,  7936.,  6760.,  7048.,  7336.,  7624.,  8062.,
      8356.,  8650.,  8944.,  7012.,  7312.,  7612.,  7912.,  8362.,  8668.,
      8974.,  9280.,  7264.,  7576.,  7888.,  8200.,  8662.,  8980.,  9298.,
      9616.,  7516.,  7840.,  8164.,  8488.,  8962.,  9292.,  9622.,  9952.,
      7768.,  8104.,  8440.,  8776.,  9262.,  9604.,  9946.,  10288., 8020.,
      8368.,  8716.,  9064.,  9562.,  9916.,  10270., 10624., 8272.,  8632.,
      8992.,  9352.,  9862.,  10228., 10594., 10960., 9028.,  9424.,  9820.,
      10216., 10762., 11164., 11566., 11968., 9280.,  9688.,  10096., 10504.,
      11062., 11476., 11890., 12304., 9532.,  9952.,  10372., 10792., 11362.,
      11788., 12214., 12640., 9784.,  10216., 10648., 11080., 11662., 12100.,
      12538., 12976., 10036., 10480., 10924., 11368., 11962., 12412., 12862.,
      13312., 10288., 10744., 11200., 11656., 12262., 12724., 13186., 13648.,
      10540., 11008., 11476., 11944., 12562., 13036., 13510., 13984., 11296.,
      11800., 12304., 12808., 13462., 13972., 14482., 14992., 11548., 12064.,
      12580., 13096., 13762., 14284., 14806., 15328., 11800., 12328., 12856.,
      13384., 14062., 14596., 15130., 15664., 12052., 12592., 13132., 13672.,
      14362., 14908., 15454., 16000., 12304., 12856., 13408., 13960., 14662.,
      15220., 15778., 16336., 12556., 13120., 13684., 14248., 14962., 15532.,
      16102., 16672., 12808., 13384., 13960., 14536., 15262., 15844., 16426.,
      17008., 13564., 14176., 14788., 15400., 16162., 16780., 17398., 18016.,
      13816., 14440., 15064., 15688., 16462., 17092., 17722., 18352., 14068.,
      14704., 15340., 15976., 16762., 17404., 18046., 18688., 14320., 14968.,
      15616., 16264., 17062., 17716., 18370., 19024., 14572., 15232., 15892.,
      16552., 17362., 18028., 18694., 19360., 14824., 15496., 16168., 16840.,
      17662., 18340., 19018., 19696., 15076., 15760., 16444., 17128., 17962.,
      18652., 19342., 20032., 15832., 16552., 17272., 17992., 18862., 19588.,
      20314., 21040., 16084., 16816., 17548., 18280., 19162., 19900., 20638.,
      21376., 16336., 17080., 17824., 18568., 19462., 20212., 20962., 21712.,
      16588., 17344., 18100., 18856., 19762., 20524., 21286., 22048., 16840.,
      17608., 18376., 19144., 20062., 20836., 21610., 22384., 17092., 17872.,
      18652., 19432., 20362., 21148., 21934., 22720., 17344., 18136., 18928.,
      19720., 20662., 21460., 22258., 23056.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      584630.,  593240.,  601910.,  610640.,  690935.,  700980.,  711095.,
      721280.,  799560.,  811040.,  822600.,  834240.,  910425.,  923340.,
      936345.,  949440.,  816840.,  828320.,  839880.,  851520.,  721175.,
      731220.,  741335.,  751520.,  623510.,  632120.,  640790.,  649520.,
      810420.,  820752.,  831156.,  841632.,  953106.,  965160.,  977298.,
      989520.,  1097712., 1111488., 1125360., 1139328., 1244142., 1259640.,
      1275246., 1290960., 1111536., 1125312., 1139184., 1153152., 977298.,
      989352.,  1001490., 1013712., 841524.,  851856.,  862260.,  872736.,
      1054354., 1066408., 1078546., 1090768., 1235437., 1249500., 1263661.,
      1277920., 1417752., 1433824., 1450008., 1466304., 1601187., 1619268.,
      1637475., 1655808., 1425816., 1441888., 1458072., 1474368., 1249549.,
      1263612., 1277773., 1292032., 1072498., 1084552., 1096690., 1108912.,
      1308656., 1322432., 1336304., 1350272., 1528856., 1544928., 1561112.,
      1577408., 1749312., 1767680., 1786176., 1804800., 1969896., 1990560.,
      2011368., 2032320., 1749312., 1767680., 1786176., 1804800., 1528856.,
      1544928., 1561112., 1577408., 1308656., 1322432., 1336304., 1350272.,
      1072498., 1084552., 1096690., 1108912., 1249549., 1263612., 1277773.,
      1292032., 1425816., 1441888., 1458072., 1474368., 1601187., 1619268.,
      1637475., 1655808., 1417752., 1433824., 1450008., 1466304., 1235437.,
      1249500., 1263661., 1277920., 1054354., 1066408., 1078546., 1090768.,
      841524.,  851856.,  862260.,  872736.,  977298.,  989352.,  1001490.,
      1013712., 1111536., 1125312., 1139184., 1153152., 1244142., 1259640.,
      1275246., 1290960., 1097712., 1111488., 1125360., 1139328., 953106.,
      965160.,  977298.,  989520.,  810420.,  820752.,  831156.,  841632.,
      623510.,  632120.,  640790.,  649520.,  721175.,  731220.,  741335.,
      751520.,  816840.,  828320.,  839880.,  851520.,  910425.,  923340.,
      936345.,  949440.,  799560.,  811040.,  822600.,  834240.,  690935.,
      700980.,  711095.,  721280.,  584630.,  593240.,  601910.,  610640.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2230.,  2440.,  2662.,  2896.,  2494.,  2728.,  2974.,  3232.,  2758.,
      3016.,  3286.,  3568.,  3022.,  3304.,  3598.,  3904.,  3286.,  3592.,
      3910.,  4240.,  3550.,  3880.,  4222.,  4576.,  3814.,  4168.,  4534.,
      4912.,  4606.,  5032.,  5470.,  5920.,  4870.,  5320.,  5782.,  6256.,
      5134.,  5608.,  6094.,  6592.,  5398.,  5896.,  6406.,  6928.,  5662.,
      6184.,  6718.,  7264.,  5926.,  6472.,  7030.,  7600.,  6190.,  6760.,
      7342.,  7936.,  6982.,  7624.,  8278.,  8944.,  7246.,  7912.,  8590.,
      9280.,  7510.,  8200.,  8902.,  9616.,  7774.,  8488.,  9214.,  9952.,
      8038.,  8776.,  9526.,  10288., 8302.,  9064.,  9838.,  10624., 8566.,
      9352.,  10150., 10960., 9358.,  10216., 11086., 11968., 9622.,  10504.,
      11398., 12304., 9886.,  10792., 11710., 12640., 10150., 11080., 12022.,
      12976., 10414., 11368., 12334., 13312., 10678., 11656., 12646., 13648.,
      10942., 11944., 12958., 13984., 11734., 12808., 13894., 14992., 11998.,
      13096., 14206., 15328., 12262., 13384., 14518., 15664., 12526., 13672.,
      14830., 16000., 12790., 13960., 15142., 16336., 13054., 14248., 15454.,
      16672., 13318., 14536., 15766., 17008., 14110., 15400., 16702., 18016.,
      14374., 15688., 17014., 18352., 14638., 15976., 17326., 18688., 14902.,
      16264., 17638., 19024., 15166., 16552., 17950., 19360., 15430., 16840.,
      18262., 19696., 15694., 17128., 18574., 20032., 16486., 17992., 19510.,
      21040., 16750., 18280., 19822., 21376., 17014., 18568., 20134., 21712.,
      17278., 18856., 20446., 22048., 17542., 19144., 20758., 22384., 17806.,
      19432., 21070., 22720., 18070., 19720., 21382., 23056.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1166770., 1169260., 1183960., 1186480., 1201270., 1203820., 1218700.,
      1221280., 1378895., 1381870., 1398950., 1401960., 1419145., 1422190.,
      1439480., 1442560., 1595640., 1599120., 1618560., 1622080., 1641640.,
      1645200., 1664880., 1668480., 1816845., 1820850., 1842630., 1846680.,
      1868595., 1872690., 1894740., 1898880., 1630040., 1633680., 1652960.,
      1656640., 1676040., 1679760., 1699280., 1703040., 1439095., 1442350.,
      1459150., 1462440., 1479345., 1482670., 1499680., 1503040., 1244170.,
      1247020., 1261360., 1264240., 1278670., 1281580., 1296100., 1299040.,
      1617204., 1620840., 1637832., 1641504., 1658604., 1662312., 1679520.,
      1683264., 1901886., 1906212., 1925952., 1930320., 1950186., 1954596.,
      1974588., 1979040., 2190384., 2195424., 2217888., 2222976., 2245584.,
      2250720., 2273472., 2278656., 2482506., 2488284., 2513448., 2519280.,
      2544606., 2550492., 2575980., 2581920., 2217840., 2223072., 2245344.,
      2250624., 2273040., 2278368., 2300928., 2306304., 1949934., 1954596.,
      1974000., 1978704., 1998234., 2002980., 2022636., 2027424., 1678980.,
      1683048., 1699608., 1703712., 1720380., 1724520., 1741296., 1745472.,
      2103710., 2108708., 2127776., 2132816., 2152010., 2157092., 2176412.,
      2181536., 2464945., 2470874., 2493022., 2499000., 2521295., 2527322.,
      2549764., 2555840., 2828616., 2835504., 2860704., 2867648., 2893016.,
      2900016., 2925552., 2932608., 3194499., 3202374., 3230598., 3238536.,
      3266949., 3274950., 3303552., 3311616., 2844520., 2851632., 2876608.,
      2883776., 2908920., 2916144., 2941456., 2948736., 2492777., 2499098.,
      2520854., 2527224., 2549127., 2555546., 2577596., 2584064., 2139494.,
      2144996., 2163560., 2169104., 2187794., 2193380., 2212196., 2217824.,
      2610736., 2617312., 2638240., 2644864., 2665936., 2672608., 2693824.,
      2700544., 3049928., 3057712., 3082016., 3089856., 3114328., 3122224.,
      3146864., 3154816., 3489600., 3498624., 3526272., 3535360., 3563200.,
      3572352., 3600384., 3609600., 3929496., 3939792., 3970752., 3981120.,
      4012296., 4022736., 4054128., 4064640., 3489344., 3498624., 3526016.,
      3535360., 3562944., 3572352., 3600128., 3609600., 3049480., 3057712.,
      3081568., 3089856., 3113880., 3122224., 3146416., 3154816., 2610160.,
      2617312., 2637664., 2644864., 2665360., 2672608., 2693248., 2700544.,
      2138486., 2144996., 2162552., 2169104., 2186786., 2193380., 2211188.,
      2217824., 2491405., 2499098., 2519482., 2527224., 2547755., 2555546.,
      2576224., 2584064., 2842728., 2851632., 2874816., 2883776., 2907128.,
      2916144., 2939664., 2948736., 3192231., 3202374., 3228330., 3238536.,
      3264681., 3274950., 3301284., 3311616., 2826376., 2835504., 2858464.,
      2867648., 2890776., 2900016., 2923312., 2932608., 2462789., 2470874.,
      2490866., 2499000., 2519139., 2527322., 2547608., 2555840., 2101694.,
      2108708., 2125760., 2132816., 2149994., 2157092., 2174396., 2181536.,
      1676820., 1683048., 1697448., 1703712., 1718220., 1724520., 1739136.,
      1745472., 1947246., 1954596., 1971312., 1978704., 1995546., 2002980.,
      2019948., 2027424., 2214576., 2223072., 2242080., 2250624., 2269776.,
      2278368., 2297664., 2306304., 2478618., 2488284., 2509560., 2519280.,
      2540718., 2550492., 2572092., 2581920., 2186736., 2195424., 2214240.,
      2222976., 2241936., 2250720., 2269824., 2278656., 1898526., 1906212.,
      1922592., 1930320., 1946826., 1954596., 1971228., 1979040., 1614180.,
      1620840., 1634808., 1641504., 1655580., 1662312., 1676496., 1683264.,
      1241290., 1247020., 1258480., 1264240., 1275790., 1281580., 1293220.,
      1299040., 1435595., 1442350., 1455650., 1462440., 1475845., 1482670.,
      1496180., 1503040., 1625880., 1633680., 1648800., 1656640., 1671880.,
      1679760., 1695120., 1703040., 1811985., 1820850., 1837770., 1846680.,
      1863735., 1872690., 1889880., 1898880., 1591160., 1599120., 1614080.,
      1622080., 1637160., 1645200., 1660400., 1668480., 1374835., 1381870.,
      1394890., 1401960., 1415085., 1422190., 1435420., 1442560., 1163170.,
      1169260., 1180360., 1186480., 1197670., 1203820., 1215100., 1221280.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4322.,  4460.,  4736.,  4880.,  5174.,  5324.,  5636.,  5792.,  4826.,
      4988.,  5288.,  5456.,  5774.,  5948.,  6284.,  6464.,  5330.,  5516.,
      5840.,  6032.,  6374.,  6572.,  6932.,  7136.,  5834.,  6044.,  6392.,
      6608.,  6974.,  7196.,  7580.,  7808.,  6338.,  6572.,  6944.,  7184.,
      7574.,  7820.,  8228.,  8480.,  6842.,  7100.,  7496.,  7760.,  8174.,
      8444.,  8876.,  9152.,  7346.,  7628.,  8048.,  8336.,  8774.,  9068.,
      9524.,  9824.,  8858.,  9212.,  9704.,  10064., 10574., 10940., 11468.,
      11840., 9362.,  9740.,  10256., 10640., 11174., 11564., 12116., 12512.,
      9866.,  10268., 10808., 11216., 11774., 12188., 12764., 13184., 10370.,
      10796., 11360., 11792., 12374., 12812., 13412., 13856., 10874., 11324.,
      11912., 12368., 12974., 13436., 14060., 14528., 11378., 11852., 12464.,
      12944., 13574., 14060., 14708., 15200., 11882., 12380., 13016., 13520.,
      14174., 14684., 15356., 15872., 13394., 13964., 14672., 15248., 15974.,
      16556., 17300., 17888., 13898., 14492., 15224., 15824., 16574., 17180.,
      17948., 18560., 14402., 15020., 15776., 16400., 17174., 17804., 18596.,
      19232., 14906., 15548., 16328., 16976., 17774., 18428., 19244., 19904.,
      15410., 16076., 16880., 17552., 18374., 19052., 19892., 20576., 15914.,
      16604., 17432., 18128., 18974., 19676., 20540., 21248., 16418., 17132.,
      17984., 18704., 19574., 20300., 21188., 21920., 17930., 18716., 19640.,
      20432., 21374., 22172., 23132., 23936., 18434., 19244., 20192., 21008.,
      21974., 22796., 23780., 24608., 18938., 19772., 20744., 21584., 22574.,
      23420., 24428., 25280., 19442., 20300., 21296., 22160., 23174., 24044.,
      25076., 25952., 19946., 20828., 21848., 22736., 23774., 24668., 25724.,
      26624., 20450., 21356., 22400., 23312., 24374., 25292., 26372., 27296.,
      20954., 21884., 22952., 23888., 24974., 25916., 27020., 27968., 22466.,
      23468., 24608., 25616., 26774., 27788., 28964., 29984., 22970., 23996.,
      25160., 26192., 27374., 28412., 29612., 30656., 23474., 24524., 25712.,
      26768., 27974., 29036., 30260., 31328., 23978., 25052., 26264., 27344.,
      28574., 29660., 30908., 32000., 24482., 25580., 26816., 27920., 29174.,
      30284., 31556., 32672., 24986., 26108., 27368., 28496., 29774., 30908.,
      32204., 33344., 25490., 26636., 27920., 29072., 30374., 31532., 32852.,
      34016., 27002., 28220., 29576., 30800., 32174., 33404., 34796., 36032.,
      27506., 28748., 30128., 31376., 32774., 34028., 35444., 36704., 28010.,
      29276., 30680., 31952., 33374., 34652., 36092., 37376., 28514., 29804.,
      31232., 32528., 33974., 35276., 36740., 38048., 29018., 30332., 31784.,
      33104., 34574., 35900., 37388., 38720., 29522., 30860., 32336., 33680.,
      35174., 36524., 38036., 39392., 30026., 31388., 32888., 34256., 35774.,
      37148., 38684., 40064., 31538., 32972., 34544., 35984., 37574., 39020.,
      40628., 42080., 32042., 33500., 35096., 36560., 38174., 39644., 41276.,
      42752., 32546., 34028., 35648., 37136., 38774., 40268., 41924., 43424.,
      33050., 34556., 36200., 37712., 39374., 40892., 42572., 44096., 33554.,
      35084., 36752., 38288., 39974., 41516., 43220., 44768., 34058., 35612.,
      37304., 38864., 40574., 42140., 43868., 45440., 34562., 36140., 37856.,
      39440., 41174., 42764., 44516., 46112.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2331050., 2333540., 2336030., 2338520., 2365400., 2367920., 2370440.,
      2372960., 2399990., 2402540., 2405090., 2407640., 2434820., 2437400.,
      2439980., 2442560., 2754815., 2757790., 2760765., 2763740., 2794890.,
      2797900., 2800910., 2803920., 2835245., 2838290., 2841335., 2844380.,
      2875880., 2878960., 2882040., 2885120., 3187800., 3191280., 3194760.,
      3198240., 3233600., 3237120., 3240640., 3244160., 3279720., 3283280.,
      3286840., 3290400., 3326160., 3329760., 3333360., 3336960., 3629685.,
      3633690., 3637695., 3641700., 3681210., 3685260., 3689310., 3693360.,
      3733095., 3737190., 3741285., 3745380., 3785340., 3789480., 3793620.,
      3797760., 3256440., 3260080., 3263720., 3267360., 3302240., 3305920.,
      3309600., 3313280., 3348360., 3352080., 3355800., 3359520., 3394800.,
      3398560., 3402320., 3406080., 2874935., 2878190., 2881445., 2884700.,
      2915010., 2918300., 2921590., 2924880., 2955365., 2958690., 2962015.,
      2965340., 2996000., 2999360., 3002720., 3006080., 2485490., 2488340.,
      2491190., 2494040., 2519840., 2522720., 2525600., 2528480., 2554430.,
      2557340., 2560250., 2563160., 2589260., 2592200., 2595140., 2598080.,
      3230772., 3234408., 3238044., 3241680., 3271992., 3275664., 3279336.,
      3283008., 3313500., 3317208., 3320916., 3324624., 3355296., 3359040.,
      3362784., 3366528., 3799446., 3803772., 3808098., 3812424., 3847536.,
      3851904., 3856272., 3860640., 3895962., 3900372., 3904782., 3909192.,
      3944724., 3949176., 3953628., 3958080., 4375728., 4380768., 4385808.,
      4390848., 4430688., 4435776., 4440864., 4445952., 4486032., 4491168.,
      4496304., 4501440., 4541760., 4546944., 4552128., 4557312., 4959234.,
      4965012., 4970790., 4976568., 5021064., 5026896., 5032728., 5038560.,
      5083326., 5089212., 5095098., 5100984., 5146020., 5151960., 5157900.,
      5163840., 4430448., 4435680., 4440912., 4446144., 4485408., 4490688.,
      4495968., 4501248., 4540752., 4546080., 4551408., 4556736., 4596480.,
      4601856., 4607232., 4612608., 3895206., 3899868., 3904530., 3909192.,
      3943296., 3948000., 3952704., 3957408., 3991722., 3996468., 4001214.,
      4005960., 4040484., 4045272., 4050060., 4054848., 3353892., 3357960.,
      3362028., 3366096., 3395112., 3399216., 3403320., 3407424., 3436620.,
      3440760., 3444900., 3449040., 3478416., 3482592., 3486768., 3490944.,
      4202422., 4207420., 4212418., 4217416., 4250512., 4255552., 4260592.,
      4265632., 4298938., 4304020., 4309102., 4314184., 4347700., 4352824.,
      4357948., 4363072., 4923961., 4929890., 4935819., 4941748., 4980066.,
      4986044., 4992022., 4998000., 5036563., 5042590., 5048617., 5054644.,
      5093452., 5099528., 5105604., 5111680., 5650344., 5657232., 5664120.,
      5671008., 5714464., 5721408., 5728352., 5735296., 5779032., 5786032.,
      5793032., 5800032., 5844048., 5851104., 5858160., 5865216., 6381123.,
      6388998., 6396873., 6404748., 6453258., 6461196., 6469134., 6477072.,
      6525897., 6533898., 6541899., 6549900., 6599040., 6607104., 6615168.,
      6623232., 5681928., 5689040., 5696152., 5703264., 5746048., 5753216.,
      5760384., 5767552., 5810616., 5817840., 5825064., 5832288., 5875632.,
      5882912., 5890192., 5897472., 4979233., 4985554., 4991875., 4998196.,
      5035338., 5041708., 5048078., 5054448., 5091835., 5098254., 5104673.,
      5111092., 5148724., 5155192., 5161660., 5168128., 4273486., 4278988.,
      4284490., 4289992., 4321576., 4327120., 4332664., 4338208., 4370002.,
      4375588., 4381174., 4386760., 4418764., 4424392., 4430020., 4435648.,
      5214896., 5221472., 5228048., 5234624., 5269856., 5276480., 5283104.,
      5289728., 5325200., 5331872., 5338544., 5345216., 5380928., 5387648.,
      5394368., 5401088., 6092072., 6099856., 6107640., 6115424., 6156192.,
      6164032., 6171872., 6179712., 6220760., 6228656., 6236552., 6244448.,
      6285776., 6293728., 6301680., 6309632., 6970176., 6979200., 6988224.,
      6997248., 7043456., 7052544., 7061632., 7070720., 7117248., 7126400.,
      7135552., 7144704., 7191552., 7200768., 7209984., 7219200., 7848696.,
      7858992., 7869288., 7879584., 7931136., 7941504., 7951872., 7962240.,
      8014152., 8024592., 8035032., 8045472., 8097744., 8108256., 8118768.,
      8129280., 6969408., 6978688., 6987968., 6997248., 7042688., 7052032.,
      7061376., 7070720., 7116480., 7125888., 7135296., 7144704., 7190784.,
      7200256., 7209728., 7219200., 6090728., 6098960., 6107192., 6115424.,
      6154848., 6163136., 6171424., 6179712., 6219416., 6227760., 6236104.,
      6244448., 6284432., 6292832., 6301232., 6309632., 5213168., 5220320.,
      5227472., 5234624., 5268128., 5275328., 5282528., 5289728., 5323472.,
      5330720., 5337968., 5345216., 5379200., 5386496., 5393792., 5401088.,
      4270462., 4276972., 4283482., 4289992., 4318552., 4325104., 4331656.,
      4338208., 4366978., 4373572., 4380166., 4386760., 4415740., 4422376.,
      4429012., 4435648., 4975117., 4982810., 4990503., 4998196., 5031222.,
      5038964., 5046706., 5054448., 5087719., 5095510., 5103301., 5111092.,
      5144608., 5152448., 5160288., 5168128., 5676552., 5685456., 5694360.,
      5703264., 5740672., 5749632., 5758592., 5767552., 5805240., 5814256.,
      5823272., 5832288., 5870256., 5879328., 5888400., 5897472., 6374319.,
      6384462., 6394605., 6404748., 6446454., 6456660., 6466866., 6477072.,
      6519093., 6529362., 6539631., 6549900., 6592236., 6602568., 6612900.,
      6623232., 5643624., 5652752., 5661880., 5671008., 5707744., 5716928.,
      5726112., 5735296., 5772312., 5781552., 5790792., 5800032., 5837328.,
      5846624., 5855920., 5865216., 4917493., 4925578., 4933663., 4941748.,
      4973598., 4981732., 4989866., 4998000., 5030095., 5038278., 5046461.,
      5054644., 5086984., 5095216., 5103448., 5111680., 4196374., 4203388.,
      4210402., 4217416., 4244464., 4251520., 4258576., 4265632., 4292890.,
      4299988., 4307086., 4314184., 4341652., 4348792., 4355932., 4363072.,
      3347412., 3353640., 3359868., 3366096., 3388632., 3394896., 3401160.,
      3407424., 3430140., 3436440., 3442740., 3449040., 3471936., 3478272.,
      3484608., 3490944., 3887142., 3894492., 3901842., 3909192., 3935232.,
      3942624., 3950016., 3957408., 3983658., 3991092., 3998526., 4005960.,
      4032420., 4039896., 4047372., 4054848., 4420656., 4429152., 4437648.,
      4446144., 4475616., 4484160., 4492704., 4501248., 4530960., 4539552.,
      4548144., 4556736., 4586688., 4595328., 4603968., 4612608., 4947570.,
      4957236., 4966902., 4976568., 5009400., 5019120., 5028840., 5038560.,
      5071662., 5081436., 5091210., 5100984., 5134356., 5144184., 5154012.,
      5163840., 4364784., 4373472., 4382160., 4390848., 4419744., 4428480.,
      4437216., 4445952., 4475088., 4483872., 4492656., 4501440., 4530816.,
      4539648., 4548480., 4557312., 3789366., 3797052., 3804738., 3812424.,
      3837456., 3845184., 3852912., 3860640., 3885882., 3893652., 3901422.,
      3909192., 3934644., 3942456., 3950268., 3958080., 3221700., 3228360.,
      3235020., 3241680., 3262920., 3269616., 3276312., 3283008., 3304428.,
      3311160., 3317892., 3324624., 3346224., 3352992., 3359760., 3366528.,
      2476850., 2482580., 2488310., 2494040., 2511200., 2516960., 2522720.,
      2528480., 2545790., 2551580., 2557370., 2563160., 2580620., 2586440.,
      2592260., 2598080., 2864435., 2871190., 2877945., 2884700., 2904510.,
      2911300., 2918090., 2924880., 2944865., 2951690., 2958515., 2965340.,
      2985500., 2992360., 2999220., 3006080., 3243960., 3251760., 3259560.,
      3267360., 3289760., 3297600., 3305440., 3313280., 3335880., 3343760.,
      3351640., 3359520., 3382320., 3390240., 3398160., 3406080., 3615105.,
      3623970., 3632835., 3641700., 3666630., 3675540., 3684450., 3693360.,
      3718515., 3727470., 3736425., 3745380., 3770760., 3779760., 3788760.,
      3797760., 3174360., 3182320., 3190280., 3198240., 3220160., 3228160.,
      3236160., 3244160., 3266280., 3274320., 3282360., 3290400., 3312720.,
      3320800., 3328880., 3336960., 2742635., 2749670., 2756705., 2763740.,
      2782710., 2789780., 2796850., 2803920., 2823065., 2830170., 2837275.,
      2844380., 2863700., 2870840., 2877980., 2885120., 2320250., 2326340.,
      2332430., 2338520., 2354600., 2360720., 2366840., 2372960., 2389190.,
      2395340., 2401490., 2407640., 2424020., 2430200., 2436380., 2442560.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8506.,  8644.,  8782.,  8920.,  9328.,  9472.,  9616.,  9760.,  10198.,
      10348., 10498., 10648., 11116., 11272., 11428., 11584., 9490.,  9652.,
      9814.,  9976.,  10408., 10576., 10744., 10912., 11374., 11548., 11722.,
      11896., 12388., 12568., 12748., 12928., 10474., 10660., 10846., 11032.,
      11488., 11680., 11872., 12064., 12550., 12748., 12946., 13144., 13660.,
      13864., 14068., 14272., 11458., 11668., 11878., 12088., 12568., 12784.,
      13000., 13216., 13726., 13948., 14170., 14392., 14932., 15160., 15388.,
      15616., 12442., 12676., 12910., 13144., 13648., 13888., 14128., 14368.,
      14902., 15148., 15394., 15640., 16204., 16456., 16708., 16960., 13426.,
      13684., 13942., 14200., 14728., 14992., 15256., 15520., 16078., 16348.,
      16618., 16888., 17476., 17752., 18028., 18304., 14410., 14692., 14974.,
      15256., 15808., 16096., 16384., 16672., 17254., 17548., 17842., 18136.,
      18748., 19048., 19348., 19648., 17362., 17716., 18070., 18424., 19048.,
      19408., 19768., 20128., 20782., 21148., 21514., 21880., 22564., 22936.,
      23308., 23680., 18346., 18724., 19102., 19480., 20128., 20512., 20896.,
      21280., 21958., 22348., 22738., 23128., 23836., 24232., 24628., 25024.,
      19330., 19732., 20134., 20536., 21208., 21616., 22024., 22432., 23134.,
      23548., 23962., 24376., 25108., 25528., 25948., 26368., 20314., 20740.,
      21166., 21592., 22288., 22720., 23152., 23584., 24310., 24748., 25186.,
      25624., 26380., 26824., 27268., 27712., 21298., 21748., 22198., 22648.,
      23368., 23824., 24280., 24736., 25486., 25948., 26410., 26872., 27652.,
      28120., 28588., 29056., 22282., 22756., 23230., 23704., 24448., 24928.,
      25408., 25888., 26662., 27148., 27634., 28120., 28924., 29416., 29908.,
      30400., 23266., 23764., 24262., 24760., 25528., 26032., 26536., 27040.,
      27838., 28348., 28858., 29368., 30196., 30712., 31228., 31744., 26218.,
      26788., 27358., 27928., 28768., 29344., 29920., 30496., 31366., 31948.,
      32530., 33112., 34012., 34600., 35188., 35776., 27202., 27796., 28390.,
      28984., 29848., 30448., 31048., 31648., 32542., 33148., 33754., 34360.,
      35284., 35896., 36508., 37120., 28186., 28804., 29422., 30040., 30928.,
      31552., 32176., 32800., 33718., 34348., 34978., 35608., 36556., 37192.,
      37828., 38464., 29170., 29812., 30454., 31096., 32008., 32656., 33304.,
      33952., 34894., 35548., 36202., 36856., 37828., 38488., 39148., 39808.,
      30154., 30820., 31486., 32152., 33088., 33760., 34432., 35104., 36070.,
      36748., 37426., 38104., 39100., 39784., 40468., 41152., 31138., 31828.,
      32518., 33208., 34168., 34864., 35560., 36256., 37246., 37948., 38650.,
      39352., 40372., 41080., 41788., 42496., 32122., 32836., 33550., 34264.,
      35248., 35968., 36688., 37408., 38422., 39148., 39874., 40600., 41644.,
      42376., 43108., 43840., 35074., 35860., 36646., 37432., 38488., 39280.,
      40072., 40864., 41950., 42748., 43546., 44344., 45460., 46264., 47068.,
      47872., 36058., 36868., 37678., 38488., 39568., 40384., 41200., 42016.,
      43126., 43948., 44770., 45592., 46732., 47560., 48388., 49216., 37042.,
      37876., 38710., 39544., 40648., 41488., 42328., 43168., 44302., 45148.,
      45994., 46840., 48004., 48856., 49708., 50560., 38026., 38884., 39742.,
      40600., 41728., 42592., 43456., 44320., 45478., 46348., 47218., 48088.,
      49276., 50152., 51028., 51904., 39010., 39892., 40774., 41656., 42808.,
      43696., 44584., 45472., 46654., 47548., 48442., 49336., 50548., 51448.,
      52348., 53248., 39994., 40900., 41806., 42712., 43888., 44800., 45712.,
      46624., 47830., 48748., 49666., 50584., 51820., 52744., 53668., 54592.,
      40978., 41908., 42838., 43768., 44968., 45904., 46840., 47776., 49006.,
      49948., 50890., 51832., 53092., 54040., 54988., 55936., 43930., 44932.,
      45934., 46936., 48208., 49216., 50224., 51232., 52534., 53548., 54562.,
      55576., 56908., 57928., 58948., 59968., 44914., 45940., 46966., 47992.,
      49288., 50320., 51352., 52384., 53710., 54748., 55786., 56824., 58180.,
      59224., 60268., 61312., 45898., 46948., 47998., 49048., 50368., 51424.,
      52480., 53536., 54886., 55948., 57010., 58072., 59452., 60520., 61588.,
      62656., 46882., 47956., 49030., 50104., 51448., 52528., 53608., 54688.,
      56062., 57148., 58234., 59320., 60724., 61816., 62908., 64000., 47866.,
      48964., 50062., 51160., 52528., 53632., 54736., 55840., 57238., 58348.,
      59458., 60568., 61996., 63112., 64228., 65344., 48850., 49972., 51094.,
      52216., 53608., 54736., 55864., 56992., 58414., 59548., 60682., 61816.,
      63268., 64408., 65548., 66688., 49834., 50980., 52126., 53272., 54688.,
      55840., 56992., 58144., 59590., 60748., 61906., 63064., 64540., 65704.,
      66868., 68032., 52786., 54004., 55222., 56440., 57928., 59152., 60376.,
      61600., 63118., 64348., 65578., 66808., 68356., 69592., 70828., 72064.,
      53770., 55012., 56254., 57496., 59008., 60256., 61504., 62752., 64294.,
      65548., 66802., 68056., 69628., 70888., 72148., 73408., 54754., 56020.,
      57286., 58552., 60088., 61360., 62632., 63904., 65470., 66748., 68026.,
      69304., 70900., 72184., 73468., 74752., 55738., 57028., 58318., 59608.,
      61168., 62464., 63760., 65056., 66646., 67948., 69250., 70552., 72172.,
      73480., 74788., 76096., 56722., 58036., 59350., 60664., 62248., 63568.,
      64888., 66208., 67822., 69148., 70474., 71800., 73444., 74776., 76108.,
      77440., 57706., 59044., 60382., 61720., 63328., 64672., 66016., 67360.,
      68998., 70348., 71698., 73048., 74716., 76072., 77428., 78784., 58690.,
      60052., 61414., 62776., 64408., 65776., 67144., 68512., 70174., 71548.,
      72922., 74296., 75988., 77368., 78748., 80128., 61642., 63076., 64510.,
      65944., 67648., 69088., 70528., 71968., 73702., 75148., 76594., 78040.,
      79804., 81256., 82708., 84160., 62626., 64084., 65542., 67000., 68728.,
      70192., 71656., 73120., 74878., 76348., 77818., 79288., 81076., 82552.,
      84028., 85504., 63610., 65092., 66574., 68056., 69808., 71296., 72784.,
      74272., 76054., 77548., 79042., 80536., 82348., 83848., 85348., 86848.,
      64594., 66100., 67606., 69112., 70888., 72400., 73912., 75424., 77230.,
      78748., 80266., 81784., 83620., 85144., 86668., 88192., 65578., 67108.,
      68638., 70168., 71968., 73504., 75040., 76576., 78406., 79948., 81490.,
      83032., 84892., 86440., 87988., 89536., 66562., 68116., 69670., 71224.,
      73048., 74608., 76168., 77728., 79582., 81148., 82714., 84280., 86164.,
      87736., 89308., 90880., 67546., 69124., 70702., 72280., 74128., 75712.,
      77296., 78880., 80758., 82348., 83938., 85528., 87436., 89032., 90628.,
      92224.};
  const std::array<int, 4> in_shape = {{1, 8, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      55020.,  63580.,  72300.,  81175.,  73650.,  65980.,  58170.,
      75754.,  87176.,  98730.,  110410., 99810.,  89096.,  78274.,
      98098.,  112532., 127050., 141645., 127680., 113652., 99568.,
      121352., 138848., 156360., 173880., 156360., 138848., 121352.,
      99568.,  113652., 127680., 141645., 127050., 112532., 98098.,
      78274.,  89096.,  99810.,  110410., 98730.,  87176.,  75754.,
      58170.,  65980.,  73650.,  81175.,  72300.,  63580.,  55020.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      360.,  396.,  432.,  468.,  504.,  540.,  576.,  720.,  756.,  792.,
      828.,  864.,  900.,  936.,  1080., 1116., 1152., 1188., 1224., 1260.,
      1296., 1440., 1476., 1512., 1548., 1584., 1620., 1656., 1800., 1836.,
      1872., 1908., 1944., 1980., 2016., 2160., 2196., 2232., 2268., 2304.,
      2340., 2376., 2520., 2556., 2592., 2628., 2664., 2700., 2736.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      109200., 110040., 126180., 127160., 143475., 144600., 161075., 162350.,
      146130., 147300., 130900., 131960., 115395., 116340., 150290., 151508.,
      172936., 174352., 195840., 197460., 218990., 220820., 197946., 199620.,
      176680., 178192., 155204., 156548., 194530., 196196., 223132., 225064.,
      251895., 254100., 280805., 283290., 253092., 255360., 225260., 227304.,
      197323., 199136., 240520., 242704., 275168., 277696., 309840., 312720.,
      344520., 347760., 309768., 312720., 275040., 277696., 240352., 242704.,
      196980., 199136., 224812., 227304., 252525., 255360., 280105., 283290.,
      251202., 254100., 222460., 225064., 193893., 196196., 154490., 156548.,
      175816., 178192., 196920., 199620., 217790., 220820., 194706., 197460.,
      171880., 174352., 149324., 151508., 114450., 116340., 129780., 131960.,
      144825., 147300., 159575., 162350., 142080., 144600., 124900., 127160.,
      108045., 110040.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      660.,  720.,  724.,  792.,  788.,  864.,  852.,  936.,  916.,  1008.,
      980.,  1080., 1044., 1152., 1300., 1440., 1364., 1512., 1428., 1584.,
      1492., 1656., 1556., 1728., 1620., 1800., 1684., 1872., 1940., 2160.,
      2004., 2232., 2068., 2304., 2132., 2376., 2196., 2448., 2260., 2520.,
      2324., 2592., 2580., 2880., 2644., 2952., 2708., 3024., 2772., 3096.,
      2836., 3168., 2900., 3240., 2964., 3312., 3220., 3600., 3284., 3672.,
      3348., 3744., 3412., 3816., 3476., 3888., 3540., 3960., 3604., 4032.,
      3860., 4320., 3924., 4392., 3988., 4464., 4052., 4536., 4116., 4608.,
      4180., 4680., 4244., 4752., 4500., 5040., 4564., 5112., 4628., 5184.,
      4692., 5256., 4756., 5328., 4820., 5400., 4884., 5472.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      217560., 218400., 219240., 220080., 251380., 252360., 253340., 254320.,
      285825., 286950., 288075., 289200., 320875., 322150., 323425., 324700.,
      291090., 292260., 293430., 294600., 260740., 261800., 262860., 263920.,
      229845., 230790., 231735., 232680., 299362., 300580., 301798., 303016.,
      344456., 345872., 347288., 348704., 390060., 391680., 393300., 394920.,
      436150., 437980., 439810., 441640., 394218., 395892., 397566., 399240.,
      351848., 353360., 354872., 356384., 309064., 310408., 311752., 313096.,
      387394., 389060., 390726., 392392., 444332., 446264., 448196., 450128.,
      501585., 503790., 505995., 508200., 559125., 561610., 564095., 566580.,
      503916., 506184., 508452., 510720., 448476., 450520., 452564., 454608.,
      392833., 394646., 396459., 398272., 478856., 481040., 483224., 485408.,
      547808., 550336., 552864., 555392., 616800., 619680., 622560., 625440.,
      685800., 689040., 692280., 695520., 616584., 619536., 622488., 625440.,
      547424., 550080., 552736., 555392., 478352., 480704., 483056., 485408.,
      391804., 393960., 396116., 398272., 447132., 449624., 452116., 454608.,
      502215., 505050., 507885., 510720., 557025., 560210., 563395., 566580.,
      499506., 502404., 505302., 508200., 442316., 444920., 447524., 450128.,
      385483., 387786., 390089., 392392., 306922., 308980., 311038., 313096.,
      349256., 351632., 354008., 356384., 391140., 393840., 396540., 399240.,
      432550., 435580., 438610., 441640., 386658., 389412., 392166., 394920.,
      341288., 343760., 346232., 348704., 296464., 298648., 300832., 303016.,
      227010., 228900., 230790., 232680., 257380., 259560., 261740., 263920.,
      287175., 289650., 292125., 294600., 316375., 319150., 321925., 324700.,
      281640., 284160., 286680., 289200., 247540., 249800., 252060., 254320.,
      214095., 216090., 218085., 220080.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1260.,  1320.,  1380.,  1440.,  1380.,  1448.,  1516.,  1584.,  1500.,
      1576.,  1652.,  1728.,  1620.,  1704.,  1788.,  1872.,  1740.,  1832.,
      1924.,  2016.,  1860.,  1960.,  2060.,  2160.,  1980.,  2088.,  2196.,
      2304.,  2460.,  2600.,  2740.,  2880.,  2580.,  2728.,  2876.,  3024.,
      2700.,  2856.,  3012.,  3168.,  2820.,  2984.,  3148.,  3312.,  2940.,
      3112.,  3284.,  3456.,  3060.,  3240.,  3420.,  3600.,  3180.,  3368.,
      3556.,  3744.,  3660.,  3880.,  4100.,  4320.,  3780.,  4008.,  4236.,
      4464.,  3900.,  4136.,  4372.,  4608.,  4020.,  4264.,  4508.,  4752.,
      4140.,  4392.,  4644.,  4896.,  4260.,  4520.,  4780.,  5040.,  4380.,
      4648.,  4916.,  5184.,  4860.,  5160.,  5460.,  5760.,  4980.,  5288.,
      5596.,  5904.,  5100.,  5416.,  5732.,  6048.,  5220.,  5544.,  5868.,
      6192.,  5340.,  5672.,  6004.,  6336.,  5460.,  5800.,  6140.,  6480.,
      5580.,  5928.,  6276.,  6624.,  6060.,  6440.,  6820.,  7200.,  6180.,
      6568.,  6956.,  7344.,  6300.,  6696.,  7092.,  7488.,  6420.,  6824.,
      7228.,  7632.,  6540.,  6952.,  7364.,  7776.,  6660.,  7080.,  7500.,
      7920.,  6780.,  7208.,  7636.,  8064.,  7260.,  7720.,  8180.,  8640.,
      7380.,  7848.,  8316.,  8784.,  7500.,  7976.,  8452.,  8928.,  7620.,
      8104.,  8588.,  9072.,  7740.,  8232.,  8724.,  9216.,  7860.,  8360.,
      8860.,  9360.,  7980.,  8488.,  8996.,  9504.,  8460.,  9000.,  9540.,
      10080., 8580.,  9128.,  9676.,  10224., 8700.,  9256.,  9812.,  10368.,
      8820.,  9384.,  9948.,  10512., 8940.,  9512.,  10084., 10656., 9060.,
      9640.,  10220., 10800., 9180.,  9768.,  10356., 10944.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      214445., 220080., 247880., 254320., 281955., 289200., 316650., 324700.,
      287355., 294600., 257480., 263920., 227045., 232680., 296254., 303016.,
      340976., 348704., 386226., 394920., 431980., 441640., 390546., 399240.,
      348656., 356384., 306334., 313096., 384503., 392392., 441112., 450128.,
      498057., 508200., 555310., 566580., 500577., 510720., 445592., 454608.,
      390383., 398272., 476392., 485408., 545088., 555392., 613848., 625440.,
      682640., 695520., 613848., 625440., 545088., 555392., 476392., 485408.,
      390383., 398272., 445592., 454608., 500577., 510720., 555310., 566580.,
      498057., 508200., 441112., 450128., 384503., 392392., 306334., 313096.,
      348656., 356384., 390546., 399240., 431980., 441640., 386226., 394920.,
      340976., 348704., 296254., 303016., 227045., 232680., 257480., 263920.,
      287355., 294600., 316650., 324700., 281955., 289200., 247880., 254320.,
      214445., 220080.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1256., 1440.,  1384., 1584.,  1512., 1728.,  1640., 1872.,  1768., 2016.,
      1896., 2160.,  2024., 2304.,  2536., 2880.,  2664., 3024.,  2792., 3168.,
      2920., 3312.,  3048., 3456.,  3176., 3600.,  3304., 3744.,  3816., 4320.,
      3944., 4464.,  4072., 4608.,  4200., 4752.,  4328., 4896.,  4456., 5040.,
      4584., 5184.,  5096., 5760.,  5224., 5904.,  5352., 6048.,  5480., 6192.,
      5608., 6336.,  5736., 6480.,  5864., 6624.,  6376., 7200.,  6504., 7344.,
      6632., 7488.,  6760., 7632.,  6888., 7776.,  7016., 7920.,  7144., 8064.,
      7656., 8640.,  7784., 8784.,  7912., 8928.,  8040., 9072.,  8168., 9216.,
      8296., 9360.,  8424., 9504.,  8936., 10080., 9064., 10224., 9192., 10368.,
      9320., 10512., 9448., 10656., 9576., 10800., 9704., 10944.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      427245.,  428890.,  438480.,  440160.,  493840.,  495760.,  506680.,
      508640.,  561705.,  563910.,  576150.,  578400.,  630800.,  633300.,
      646850.,  649400.,  572415.,  574710.,  586860.,  589200.,  512880.,
      514960.,  525720.,  527840.,  452235.,  454090.,  463470.,  465360.,
      590114.,  592508.,  603596.,  606032.,  679168.,  681952.,  694576.,
      697408.,  769266.,  772452.,  786600.,  789840.,  860360.,  863960.,
      879620.,  883280.,  777798.,  781092.,  795132.,  798480.,  694336.,
      697312.,  709744.,  712768.,  610022.,  612668.,  623504.,  626192.,
      765723.,  769006.,  781452.,  784784.,  878416.,  882224.,  896392.,
      900256.,  991767.,  996114.,  1011990., 1016400., 1105720., 1110620.,
      1128190., 1133160., 996681.,  1001154., 1016904., 1021440., 887152.,
      891184.,  905128.,  909216.,  777189.,  780766.,  792918.,  796544.,
      948472.,  952784.,  966448.,  970816.,  1085184., 1090176., 1105728.,
      1110784., 1222008., 1227696., 1245120., 1250880., 1358880., 1365280.,
      1384560., 1391040., 1221864., 1227696., 1244976., 1250880., 1084928.,
      1090176., 1105472., 1110784., 948136.,  952784.,  966112.,  970816.,
      776503.,  780766.,  792232.,  796544.,  886256.,  891184.,  904232.,
      909216.,  995547.,  1001154., 1015770., 1021440., 1104320., 1110620.,
      1126790., 1133160., 990381.,  996114.,  1010604., 1016400., 877072.,
      882224.,  895048.,  900256.,  764449.,  769006.,  780178.,  784784.,
      608594.,  612668.,  622076.,  626192.,  692608.,  697312.,  708016.,
      712768.,  775746.,  781092.,  793080.,  798480.,  857960.,  863960.,
      877220.,  883280.,  766998.,  772452.,  784332.,  789840.,  677056.,
      681952.,  692464.,  697408.,  588182.,  592508.,  601664.,  606032.,
      450345.,  454090.,  461580.,  465360.,  510640.,  514960.,  523480.,
      527840.,  569805.,  574710.,  584250.,  589200.,  627800.,  633300.,
      643850.,  649400.,  558915.,  563910.,  573360.,  578400.,  491280.,
      495760.,  504120.,  508640.,  424935.,  428890.,  436170.,  440160.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2400.,  2512.,  2760.,  2880.,  2640.,  2768.,  3032.,  3168.,  2880.,
      3024.,  3304.,  3456.,  3120.,  3280.,  3576.,  3744.,  3360.,  3536.,
      3848.,  4032.,  3600.,  3792.,  4120.,  4320.,  3840.,  4048.,  4392.,
      4608.,  4800.,  5072.,  5480.,  5760.,  5040.,  5328.,  5752.,  6048.,
      5280.,  5584.,  6024.,  6336.,  5520.,  5840.,  6296.,  6624.,  5760.,
      6096.,  6568.,  6912.,  6000.,  6352.,  6840.,  7200.,  6240.,  6608.,
      7112.,  7488.,  7200.,  7632.,  8200.,  8640.,  7440.,  7888.,  8472.,
      8928.,  7680.,  8144.,  8744.,  9216.,  7920.,  8400.,  9016.,  9504.,
      8160.,  8656.,  9288.,  9792.,  8400.,  8912.,  9560.,  10080., 8640.,
      9168.,  9832.,  10368., 9600.,  10192., 10920., 11520., 9840.,  10448.,
      11192., 11808., 10080., 10704., 11464., 12096., 10320., 10960., 11736.,
      12384., 10560., 11216., 12008., 12672., 10800., 11472., 12280., 12960.,
      11040., 11728., 12552., 13248., 12000., 12752., 13640., 14400., 12240.,
      13008., 13912., 14688., 12480., 13264., 14184., 14976., 12720., 13520.,
      14456., 15264., 12960., 13776., 14728., 15552., 13200., 14032., 15000.,
      15840., 13440., 14288., 15272., 16128., 14400., 15312., 16360., 17280.,
      14640., 15568., 16632., 17568., 14880., 15824., 16904., 17856., 15120.,
      16080., 17176., 18144., 15360., 16336., 17448., 18432., 15600., 16592.,
      17720., 18720., 15840., 16848., 17992., 19008., 16800., 17872., 19080.,
      20160., 17040., 18128., 19352., 20448., 17280., 18384., 19624., 20736.,
      17520., 18640., 19896., 21024., 17760., 18896., 20168., 21312., 18000.,
      19152., 20440., 21600., 18240., 19408., 20712., 21888.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      852845.,  854490.,  856135.,  857780.,  875280.,  876960.,  878640.,
      880320.,  985760.,  987680.,  989600.,  991520.,  1011400., 1013360.,
      1015320., 1017280., 1121205., 1123410., 1125615., 1127820., 1150050.,
      1152300., 1154550., 1156800., 1259100., 1261600., 1264100., 1266600.,
      1291150., 1293700., 1296250., 1298800., 1142535., 1144830., 1147125.,
      1149420., 1171380., 1173720., 1176060., 1178400., 1023680., 1025760.,
      1027840., 1029920., 1049320., 1051440., 1053560., 1055680., 902615.,
      904470.,  906325.,  908180.,  925050.,  926940.,  928830.,  930720.,
      1177834., 1180228., 1182622., 1185016., 1204756., 1207192., 1209628.,
      1212064., 1355552., 1358336., 1361120., 1363904., 1386320., 1389152.,
      1391984., 1394816., 1535346., 1538532., 1541718., 1544904., 1569960.,
      1573200., 1576440., 1579680., 1717120., 1720720., 1724320., 1727920.,
      1755580., 1759240., 1762900., 1766560., 1552302., 1555596., 1558890.,
      1562184., 1586916., 1590264., 1593612., 1596960., 1385696., 1388672.,
      1391648., 1394624., 1416464., 1419488., 1422512., 1425536., 1217398.,
      1220044., 1222690., 1225336., 1244320., 1247008., 1249696., 1252384.,
      1528163., 1531446., 1534729., 1538012., 1559572., 1562904., 1566236.,
      1569568., 1753024., 1756832., 1760640., 1764448., 1788920., 1792784.,
      1796648., 1800512., 1979187., 1983534., 1987881., 1992228., 2019570.,
      2023980., 2028390., 2032800., 2206540., 2211440., 2216340., 2221240.,
      2251410., 2256380., 2261350., 2266320., 1988889., 1993362., 1997835.,
      2002308., 2029272., 2033808., 2038344., 2042880., 1770272., 1774304.,
      1778336., 1782368., 1806168., 1810256., 1814344., 1818432., 1550801.,
      1554378., 1557955., 1561532., 1582210., 1585836., 1589462., 1593088.,
      1892632., 1896944., 1901256., 1905568., 1928528., 1932896., 1937264.,
      1941632., 2165376., 2170368., 2175360., 2180352., 2206400., 2211456.,
      2216512., 2221568., 2438328., 2444016., 2449704., 2455392., 2484480.,
      2490240., 2496000., 2501760., 2711360., 2717760., 2724160., 2730560.,
      2762640., 2769120., 2775600., 2782080., 2437896., 2443728., 2449560.,
      2455392., 2484048., 2489952., 2495856., 2501760., 2164608., 2169856.,
      2175104., 2180352., 2205632., 2210944., 2216256., 2221568., 1891624.,
      1896272., 1900920., 1905568., 1927520., 1932224., 1936928., 1941632.,
      1548743., 1553006., 1557269., 1561532., 1580152., 1584464., 1588776.,
      1593088., 1767584., 1772512., 1777440., 1782368., 1803480., 1808464.,
      1813448., 1818432., 1985487., 1991094., 1996701., 2002308., 2025870.,
      2031540., 2037210., 2042880., 2202340., 2208640., 2214940., 2221240.,
      2247210., 2253580., 2259950., 2266320., 1975029., 1980762., 1986495.,
      1992228., 2015412., 2021208., 2027004., 2032800., 1748992., 1754144.,
      1759296., 1764448., 1784888., 1790096., 1795304., 1800512., 1524341.,
      1528898., 1533455., 1538012., 1555750., 1560356., 1564962., 1569568.,
      1213114., 1217188., 1221262., 1225336., 1240036., 1244152., 1248268.,
      1252384., 1380512., 1385216., 1389920., 1394624., 1411280., 1416032.,
      1420784., 1425536., 1546146., 1551492., 1556838., 1562184., 1580760.,
      1586160., 1591560., 1596960., 1709920., 1715920., 1721920., 1727920.,
      1748380., 1754440., 1760500., 1766560., 1528542., 1533996., 1539450.,
      1544904., 1563156., 1568664., 1574172., 1579680., 1349216., 1354112.,
      1359008., 1363904., 1379984., 1384928., 1389872., 1394816., 1172038.,
      1176364., 1180690., 1185016., 1198960., 1203328., 1207696., 1212064.,
      896945.,  900690.,  904435.,  908180.,  919380.,  923160.,  926940.,
      930720.,  1016960., 1021280., 1025600., 1029920., 1042600., 1046960.,
      1051320., 1055680., 1134705., 1139610., 1144515., 1149420., 1163550.,
      1168500., 1173450., 1178400., 1250100., 1255600., 1261100., 1266600.,
      1282150., 1287700., 1293250., 1298800., 1112835., 1117830., 1122825.,
      1127820., 1141680., 1146720., 1151760., 1156800., 978080.,  982560.,
      987040.,  991520.,  1003720., 1008240., 1012760., 1017280., 845915.,
      849870.,  853825.,  857780.,  868350.,  872340.,  876330.,  880320.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4688.,  4800.,  4912.,  5024.,  5400.,  5520.,  5640.,  5760.,  5152.,
      5280.,  5408.,  5536.,  5928.,  6064.,  6200.,  6336.,  5616.,  5760.,
      5904.,  6048.,  6456.,  6608.,  6760.,  6912.,  6080.,  6240.,  6400.,
      6560.,  6984.,  7152.,  7320.,  7488.,  6544.,  6720.,  6896.,  7072.,
      7512.,  7696.,  7880.,  8064.,  7008.,  7200.,  7392.,  7584.,  8040.,
      8240.,  8440.,  8640.,  7472.,  7680.,  7888.,  8096.,  8568.,  8784.,
      9000.,  9216.,  9328.,  9600.,  9872.,  10144., 10680., 10960., 11240.,
      11520., 9792.,  10080., 10368., 10656., 11208., 11504., 11800., 12096.,
      10256., 10560., 10864., 11168., 11736., 12048., 12360., 12672., 10720.,
      11040., 11360., 11680., 12264., 12592., 12920., 13248., 11184., 11520.,
      11856., 12192., 12792., 13136., 13480., 13824., 11648., 12000., 12352.,
      12704., 13320., 13680., 14040., 14400., 12112., 12480., 12848., 13216.,
      13848., 14224., 14600., 14976., 13968., 14400., 14832., 15264., 15960.,
      16400., 16840., 17280., 14432., 14880., 15328., 15776., 16488., 16944.,
      17400., 17856., 14896., 15360., 15824., 16288., 17016., 17488., 17960.,
      18432., 15360., 15840., 16320., 16800., 17544., 18032., 18520., 19008.,
      15824., 16320., 16816., 17312., 18072., 18576., 19080., 19584., 16288.,
      16800., 17312., 17824., 18600., 19120., 19640., 20160., 16752., 17280.,
      17808., 18336., 19128., 19664., 20200., 20736., 18608., 19200., 19792.,
      20384., 21240., 21840., 22440., 23040., 19072., 19680., 20288., 20896.,
      21768., 22384., 23000., 23616., 19536., 20160., 20784., 21408., 22296.,
      22928., 23560., 24192., 20000., 20640., 21280., 21920., 22824., 23472.,
      24120., 24768., 20464., 21120., 21776., 22432., 23352., 24016., 24680.,
      25344., 20928., 21600., 22272., 22944., 23880., 24560., 25240., 25920.,
      21392., 22080., 22768., 23456., 24408., 25104., 25800., 26496., 23248.,
      24000., 24752., 25504., 26520., 27280., 28040., 28800., 23712., 24480.,
      25248., 26016., 27048., 27824., 28600., 29376., 24176., 24960., 25744.,
      26528., 27576., 28368., 29160., 29952., 24640., 25440., 26240., 27040.,
      28104., 28912., 29720., 30528., 25104., 25920., 26736., 27552., 28632.,
      29456., 30280., 31104., 25568., 26400., 27232., 28064., 29160., 30000.,
      30840., 31680., 26032., 26880., 27728., 28576., 29688., 30544., 31400.,
      32256., 27888., 28800., 29712., 30624., 31800., 32720., 33640., 34560.,
      28352., 29280., 30208., 31136., 32328., 33264., 34200., 35136., 28816.,
      29760., 30704., 31648., 32856., 33808., 34760., 35712., 29280., 30240.,
      31200., 32160., 33384., 34352., 35320., 36288., 29744., 30720., 31696.,
      32672., 33912., 34896., 35880., 36864., 30208., 31200., 32192., 33184.,
      34440., 35440., 36440., 37440., 30672., 31680., 32688., 33696., 34968.,
      35984., 37000., 38016., 32528., 33600., 34672., 35744., 37080., 38160.,
      39240., 40320., 32992., 34080., 35168., 36256., 37608., 38704., 39800.,
      40896., 33456., 34560., 35664., 36768., 38136., 39248., 40360., 41472.,
      33920., 35040., 36160., 37280., 38664., 39792., 40920., 42048., 34384.,
      35520., 36656., 37792., 39192., 40336., 41480., 42624., 34848., 36000.,
      37152., 38304., 39720., 40880., 42040., 43200., 35312., 36480., 37648.,
      38816., 40248., 41424., 42600., 43776.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      846615.,  857780.,  869015.,  880320.,  978760.,  991520.,  1004360.,
      1017280., 1113465., 1127820., 1142265., 1156800., 1250650., 1266600.,
      1282650., 1298800., 1135065., 1149420., 1163865., 1178400., 1017160.,
      1029920., 1042760., 1055680., 897015.,  908180.,  919415.,  930720.,
      1171618., 1185016., 1198498., 1212064., 1348592., 1363904., 1379312.,
      1394816., 1527678., 1544904., 1562238., 1579680., 1708780., 1727920.,
      1747180., 1766560., 1544958., 1562184., 1579518., 1596960., 1379312.,
      1394624., 1410032., 1425536., 1211938., 1225336., 1238818., 1252384.,
      1522381., 1538012., 1553741., 1569568., 1746584., 1764448., 1782424.,
      1800512., 1972131., 1992228., 2012451., 2032800., 2198910., 2221240.,
      2243710., 2266320., 1982211., 2002308., 2022531., 2042880., 1764504.,
      1782368., 1800344., 1818432., 1545901., 1561532., 1577261., 1593088.,
      1887704., 1905568., 1923544., 1941632., 2159936., 2180352., 2200896.,
      2221568., 2432424., 2455392., 2478504., 2501760., 2705040., 2730560.,
      2756240., 2782080., 2432424., 2455392., 2478504., 2501760., 2159936.,
      2180352., 2200896., 2221568., 1887704., 1905568., 1923544., 1941632.,
      1545901., 1561532., 1577261., 1593088., 1764504., 1782368., 1800344.,
      1818432., 1982211., 2002308., 2022531., 2042880., 2198910., 2221240.,
      2243710., 2266320., 1972131., 1992228., 2012451., 2032800., 1746584.,
      1764448., 1782424., 1800512., 1522381., 1538012., 1553741., 1569568.,
      1211938., 1225336., 1238818., 1252384., 1379312., 1394624., 1410032.,
      1425536., 1544958., 1562184., 1579518., 1596960., 1708780., 1727920.,
      1747180., 1766560., 1527678., 1544904., 1562238., 1579680., 1348592.,
      1363904., 1379312., 1394816., 1171618., 1185016., 1198498., 1212064.,
      897015.,  908180.,  919415.,  930720.,  1017160., 1029920., 1042760.,
      1055680., 1135065., 1149420., 1163865., 1178400., 1250650., 1266600.,
      1282650., 1298800., 1113465., 1127820., 1142265., 1156800., 978760.,
      991520.,  1004360., 1017280., 846615.,  857780.,  869015.,  880320.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4680.,  5024.,  5384.,  5760.,  5160.,  5536.,  5928.,  6336.,  5640.,
      6048.,  6472.,  6912.,  6120.,  6560.,  7016.,  7488.,  6600.,  7072.,
      7560.,  8064.,  7080.,  7584.,  8104.,  8640.,  7560.,  8096.,  8648.,
      9216.,  9480.,  10144., 10824., 11520., 9960.,  10656., 11368., 12096.,
      10440., 11168., 11912., 12672., 10920., 11680., 12456., 13248., 11400.,
      12192., 13000., 13824., 11880., 12704., 13544., 14400., 12360., 13216.,
      14088., 14976., 14280., 15264., 16264., 17280., 14760., 15776., 16808.,
      17856., 15240., 16288., 17352., 18432., 15720., 16800., 17896., 19008.,
      16200., 17312., 18440., 19584., 16680., 17824., 18984., 20160., 17160.,
      18336., 19528., 20736., 19080., 20384., 21704., 23040., 19560., 20896.,
      22248., 23616., 20040., 21408., 22792., 24192., 20520., 21920., 23336.,
      24768., 21000., 22432., 23880., 25344., 21480., 22944., 24424., 25920.,
      21960., 23456., 24968., 26496., 23880., 25504., 27144., 28800., 24360.,
      26016., 27688., 29376., 24840., 26528., 28232., 29952., 25320., 27040.,
      28776., 30528., 25800., 27552., 29320., 31104., 26280., 28064., 29864.,
      31680., 26760., 28576., 30408., 32256., 28680., 30624., 32584., 34560.,
      29160., 31136., 33128., 35136., 29640., 31648., 33672., 35712., 30120.,
      32160., 34216., 36288., 30600., 32672., 34760., 36864., 31080., 33184.,
      35304., 37440., 31560., 33696., 35848., 38016., 33480., 35744., 38024.,
      40320., 33960., 36256., 38568., 40896., 34440., 36768., 39112., 41472.,
      34920., 37280., 39656., 42048., 35400., 37792., 40200., 42624., 35880.,
      38304., 40744., 43200., 36360., 38816., 41288., 43776.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1689975., 1693230., 1712270., 1715560., 1734705., 1738030., 1757280.,
      1760640., 1953720., 1957520., 1979200., 1983040., 2004840., 2008720.,
      2030640., 2034560., 2222565., 2226930., 2251230., 2255640., 2280075.,
      2284530., 2309100., 2313600., 2496350., 2501300., 2528200., 2533200.,
      2560250., 2565300., 2592500., 2597600., 2265585., 2270130., 2294250.,
      2298840., 2323095., 2327730., 2352120., 2356800., 2030200., 2034320.,
      2055680., 2059840., 2081320., 2085520., 2107120., 2111360., 1790355.,
      1794030., 1812650., 1816360., 1835085., 1838830., 1857660., 1861440.,
      2338490., 2343236., 2365244., 2370032., 2392166., 2396996., 2419256.,
      2424128., 2691664., 2697184., 2722240., 2727808., 2753008., 2758624.,
      2783968., 2789632., 3049038., 3055356., 3083436., 3089808., 3118050.,
      3124476., 3152880., 3159360., 3410420., 3417560., 3448640., 3455840.,
      3487100., 3494360., 3525800., 3533120., 3083382., 3089916., 3117780.,
      3124368., 3152394., 3159036., 3187224., 3193920., 2752720., 2758624.,
      2783296., 2789248., 2814064., 2820064., 2845024., 2851072., 2418626.,
      2423876., 2445380., 2450672., 2472302., 2477636., 2499392., 2504768.,
      3038245., 3044762., 3069458., 3076024., 3100867., 3107482., 3132472.,
      3139136., 3485608., 3493168., 3521280., 3528896., 3557176., 3564848.,
      3593296., 3601024., 3935631., 3944262., 3975762., 3984456., 4016145.,
      4024902., 4056780., 4065600., 4388090., 4397820., 4432680., 4442480.,
      4477550., 4487420., 4522700., 4532640., 3955539., 3964422., 3995670.,
      4004616., 4036053., 4045062., 4076688., 4085760., 3521000., 3529008.,
      3556672., 3564736., 3592568., 3600688., 3628688., 3636864., 3084697.,
      3091802., 3115910., 3123064., 3147319., 3154522., 3178924., 3186176.,
      3766840., 3775408., 3802512., 3811136., 3838408., 3847088., 3874528.,
      3883264., 4309952., 4319872., 4350720., 4360704., 4391744., 4401792.,
      4433024., 4443136., 4853544., 4864848., 4899408., 4910784., 4945560.,
      4957008., 4992000., 5003520., 5397360., 5410080., 5448320., 5461120.,
      5499600., 5512480., 5551200., 5564160., 4853256., 4864848., 4899120.,
      4910784., 4945272., 4957008., 4991712., 5003520., 4309440., 4319872.,
      4350208., 4360704., 4391232., 4401792., 4432512., 4443136., 3766168.,
      3775408., 3801840., 3811136., 3837736., 3847088., 3873856., 3883264.,
      3083325., 3091802., 3114538., 3123064., 3145947., 3154522., 3177552.,
      3186176., 3519208., 3529008., 3554880., 3564736., 3590776., 3600688.,
      3626896., 3636864., 3953271., 3964422., 3993402., 4004616., 4033785.,
      4045062., 4074420., 4085760., 4385290., 4397820., 4429880., 4442480.,
      4474750., 4487420., 4519900., 4532640., 3932859., 3944262., 3972990.,
      3984456., 4013373., 4024902., 4054008., 4065600., 3482920., 3493168.,
      3518592., 3528896., 3554488., 3564848., 3590608., 3601024., 3035697.,
      3044762., 3066910., 3076024., 3098319., 3107482., 3129924., 3139136.,
      2415770., 2423876., 2442524., 2450672., 2469446., 2477636., 2496536.,
      2504768., 2749264., 2758624., 2779840., 2789248., 2810608., 2820064.,
      2841568., 2851072., 3079278., 3089916., 3113676., 3124368., 3148290.,
      3159036., 3183120., 3193920., 3405620., 3417560., 3443840., 3455840.,
      3482300., 3494360., 3521000., 3533120., 3044502., 3055356., 3078900.,
      3089808., 3113514., 3124476., 3148344., 3159360., 2687440., 2697184.,
      2718016., 2727808., 2748784., 2758624., 2779744., 2789632., 2334626.,
      2343236., 2361380., 2370032., 2388302., 2396996., 2415392., 2424128.,
      1786575., 1794030., 1808870., 1816360., 1831305., 1838830., 1853880.,
      1861440., 2025720., 2034320., 2051200., 2059840., 2076840., 2085520.,
      2102640., 2111360., 2260365., 2270130., 2289030., 2298840., 2317875.,
      2327730., 2346900., 2356800., 2490350., 2501300., 2522200., 2533200.,
      2554250., 2565300., 2586500., 2597600., 2216985., 2226930., 2245650.,
      2255640., 2274495., 2284530., 2303520., 2313600., 1948600., 1957520.,
      1974080., 1983040., 1999720., 2008720., 2025520., 2034560., 1685355.,
      1693230., 1707650., 1715560., 1730085., 1738030., 1752660., 1760640.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9144.,  9360.,  9824.,  10048., 10536., 10768., 11280., 11520., 10072.,
      10320., 10816., 11072., 11592., 11856., 12400., 12672., 11000., 11280.,
      11808., 12096., 12648., 12944., 13520., 13824., 11928., 12240., 12800.,
      13120., 13704., 14032., 14640., 14976., 12856., 13200., 13792., 14144.,
      14760., 15120., 15760., 16128., 13784., 14160., 14784., 15168., 15816.,
      16208., 16880., 17280., 14712., 15120., 15776., 16192., 16872., 17296.,
      18000., 18432., 18424., 18960., 19744., 20288., 21096., 21648., 22480.,
      23040., 19352., 19920., 20736., 21312., 22152., 22736., 23600., 24192.,
      20280., 20880., 21728., 22336., 23208., 23824., 24720., 25344., 21208.,
      21840., 22720., 23360., 24264., 24912., 25840., 26496., 22136., 22800.,
      23712., 24384., 25320., 26000., 26960., 27648., 23064., 23760., 24704.,
      25408., 26376., 27088., 28080., 28800., 23992., 24720., 25696., 26432.,
      27432., 28176., 29200., 29952., 27704., 28560., 29664., 30528., 31656.,
      32528., 33680., 34560., 28632., 29520., 30656., 31552., 32712., 33616.,
      34800., 35712., 29560., 30480., 31648., 32576., 33768., 34704., 35920.,
      36864., 30488., 31440., 32640., 33600., 34824., 35792., 37040., 38016.,
      31416., 32400., 33632., 34624., 35880., 36880., 38160., 39168., 32344.,
      33360., 34624., 35648., 36936., 37968., 39280., 40320., 33272., 34320.,
      35616., 36672., 37992., 39056., 40400., 41472., 36984., 38160., 39584.,
      40768., 42216., 43408., 44880., 46080., 37912., 39120., 40576., 41792.,
      43272., 44496., 46000., 47232., 38840., 40080., 41568., 42816., 44328.,
      45584., 47120., 48384., 39768., 41040., 42560., 43840., 45384., 46672.,
      48240., 49536., 40696., 42000., 43552., 44864., 46440., 47760., 49360.,
      50688., 41624., 42960., 44544., 45888., 47496., 48848., 50480., 51840.,
      42552., 43920., 45536., 46912., 48552., 49936., 51600., 52992., 46264.,
      47760., 49504., 51008., 52776., 54288., 56080., 57600., 47192., 48720.,
      50496., 52032., 53832., 55376., 57200., 58752., 48120., 49680., 51488.,
      53056., 54888., 56464., 58320., 59904., 49048., 50640., 52480., 54080.,
      55944., 57552., 59440., 61056., 49976., 51600., 53472., 55104., 57000.,
      58640., 60560., 62208., 50904., 52560., 54464., 56128., 58056., 59728.,
      61680., 63360., 51832., 53520., 55456., 57152., 59112., 60816., 62800.,
      64512., 55544., 57360., 59424., 61248., 63336., 65168., 67280., 69120.,
      56472., 58320., 60416., 62272., 64392., 66256., 68400., 70272., 57400.,
      59280., 61408., 63296., 65448., 67344., 69520., 71424., 58328., 60240.,
      62400., 64320., 66504., 68432., 70640., 72576., 59256., 61200., 63392.,
      65344., 67560., 69520., 71760., 73728., 60184., 62160., 64384., 66368.,
      68616., 70608., 72880., 74880., 61112., 63120., 65376., 67392., 69672.,
      71696., 74000., 76032., 64824., 66960., 69344., 71488., 73896., 76048.,
      78480., 80640., 65752., 67920., 70336., 72512., 74952., 77136., 79600.,
      81792., 66680., 68880., 71328., 73536., 76008., 78224., 80720., 82944.,
      67608., 69840., 72320., 74560., 77064., 79312., 81840., 84096., 68536.,
      70800., 73312., 75584., 78120., 80400., 82960., 85248., 69464., 71760.,
      74304., 76608., 79176., 81488., 84080., 86400., 70392., 72720., 75296.,
      77632., 80232., 82576., 85200., 87552.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x8x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3376695.,  3379950.,  3383205.,  3386460.,  3421250.,  3424540.,
      3427830.,  3431120.,  3466085.,  3469410.,  3472735.,  3476060.,
      3511200.,  3514560.,  3517920.,  3521280.,  3903640.,  3907440.,
      3911240.,  3915040.,  3954560.,  3958400.,  3962240.,  3966080.,
      4005800.,  4009680.,  4013560.,  4017440.,  4057360.,  4061280.,
      4065200.,  4069120.,  4440765.,  4445130.,  4449495.,  4453860.,
      4498050.,  4502460.,  4506870.,  4511280.,  4555695.,  4560150.,
      4564605.,  4569060.,  4613700.,  4618200.,  4622700.,  4627200.,
      4987750.,  4992700.,  4997650.,  5002600.,  5051400.,  5056400.,
      5061400.,  5066400.,  5115450.,  5120500.,  5125550.,  5130600.,
      5179900.,  5185000.,  5190100.,  5195200.,  4526625.,  4531170.,
      4535715.,  4540260.,  4583910.,  4588500.,  4593090.,  4597680.,
      4641555.,  4646190.,  4650825.,  4655460.,  4699560.,  4704240.,
      4708920.,  4713600.,  4056280.,  4060400.,  4064520.,  4068640.,
      4107200.,  4111360.,  4115520.,  4119680.,  4158440.,  4162640.,
      4166840.,  4171040.,  4210000.,  4214240.,  4218480.,  4222720.,
      3577035.,  3580710.,  3584385.,  3588060.,  3621590.,  3625300.,
      3629010.,  3632720.,  3666425.,  3670170.,  3673915.,  3677660.,
      3711540.,  3715320.,  3719100.,  3722880.,  4672234.,  4676980.,
      4681726.,  4686472.,  4725700.,  4730488.,  4735276.,  4740064.,
      4779502.,  4784332.,  4789162.,  4793992.,  4833640.,  4838512.,
      4843384.,  4848256.,  5377808.,  5383328.,  5388848.,  5394368.,
      5438912.,  5444480.,  5450048.,  5455616.,  5500400.,  5506016.,
      5511632.,  5517248.,  5562272.,  5567936.,  5573600.,  5579264.,
      6091758.,  6098076.,  6104394.,  6110712.,  6160500.,  6166872.,
      6173244.,  6179616.,  6229674.,  6236100.,  6242526.,  6248952.,
      6299280.,  6305760.,  6312240.,  6318720.,  6813700.,  6820840.,
      6827980.,  6835120.,  6890080.,  6897280.,  6904480.,  6911680.,
      6966940.,  6974200.,  6981460.,  6988720.,  7044280.,  7051600.,
      7058920.,  7066240.,  6160230.,  6166764.,  6173298.,  6179832.,
      6228972.,  6235560.,  6242148.,  6248736.,  6298146.,  6304788.,
      6311430.,  6318072.,  6367752.,  6374448.,  6381144.,  6387840.,
      5499536.,  5505440.,  5511344.,  5517248.,  5560640.,  5566592.,
      5572544.,  5578496.,  5622128.,  5628128.,  5634128.,  5640128.,
      5684000.,  5690048.,  5696096.,  5702144.,  4832002.,  4837252.,
      4842502.,  4847752.,  4885468.,  4890760.,  4896052.,  4901344.,
      4939270.,  4944604.,  4949938.,  4955272.,  4993408.,  4998784.,
      5004160.,  5009536.,  6069973.,  6076490.,  6083007.,  6089524.,
      6132350.,  6138916.,  6145482.,  6152048.,  6195119.,  6201734.,
      6208349.,  6214964.,  6258280.,  6264944.,  6271608.,  6278272.,
      6963656.,  6971216.,  6978776.,  6986336.,  7034944.,  7042560.,
      7050176.,  7057792.,  7106680.,  7114352.,  7122024.,  7129696.,
      7178864.,  7186592.,  7194320.,  7202048.,  7862631.,  7871262.,
      7879893.,  7888524.,  7942830.,  7951524.,  7960218.,  7968912.,
      8023533.,  8032290.,  8041047.,  8049804.,  8104740.,  8113560.,
      8122380.,  8131200.,  8766450.,  8776180.,  8785910.,  8795640.,
      8855560.,  8865360.,  8875160.,  8884960.,  8945230.,  8955100.,
      8964970.,  8974840.,  9035460.,  9045400.,  9055340.,  9065280.,
      7902195.,  7911078.,  7919961.,  7928844.,  7982394.,  7991340.,
      8000286.,  8009232.,  8063097.,  8072106.,  8081115.,  8090124.,
      8144304.,  8153376.,  8162448.,  8171520.,  7033992.,  7042000.,
      7050008.,  7058016.,  7105280.,  7113344.,  7121408.,  7129472.,
      7177016.,  7185136.,  7193256.,  7201376.,  7249200.,  7257376.,
      7265552.,  7273728.,  6162289.,  6169394.,  6176499.,  6183604.,
      6224666.,  6231820.,  6238974.,  6246128.,  6287435.,  6294638.,
      6301841.,  6309044.,  6350596.,  6357848.,  6365100.,  6372352.,
      7525112.,  7533680.,  7542248.,  7550816.,  7596400.,  7605024.,
      7613648.,  7622272.,  7668136.,  7676816.,  7685496.,  7694176.,
      7740320.,  7749056.,  7757792.,  7766528.,  8609984.,  8619904.,
      8629824.,  8639744.,  8691456.,  8701440.,  8711424.,  8721408.,
      8773440.,  8783488.,  8793536.,  8803584.,  8855936.,  8866048.,
      8876160.,  8886272.,  9695784.,  9707088.,  9718392.,  9729696.,
      9787440.,  9798816.,  9810192.,  9821568.,  9879672.,  9891120.,
      9902568.,  9914016.,  9972480.,  9984000.,  9995520.,  10007040.,
      10782000., 10794720., 10807440., 10820160., 10883840., 10896640.,
      10909440., 10922240., 10986320., 10999200., 11012080., 11024960.,
      11089440., 11102400., 11115360., 11128320., 9694920.,  9706512.,
      9718104.,  9729696.,  9786576.,  9798240.,  9809904.,  9821568.,
      9878808.,  9890544.,  9902280.,  9914016.,  9971616.,  9983424.,
      9995232.,  10007040., 8608448.,  8618880.,  8629312.,  8639744.,
      8689920.,  8700416.,  8710912.,  8721408.,  8771904.,  8782464.,
      8793024.,  8803584.,  8854400.,  8865024.,  8875648.,  8886272.,
      7523096.,  7532336.,  7541576.,  7550816.,  7594384.,  7603680.,
      7612976.,  7622272.,  7666120.,  7675472.,  7684824.,  7694176.,
      7738304.,  7747712.,  7757120.,  7766528.,  6158173.,  6166650.,
      6175127.,  6183604.,  6220550.,  6229076.,  6237602.,  6246128.,
      6283319.,  6291894.,  6300469.,  6309044.,  6346480.,  6355104.,
      6363728.,  6372352.,  7028616.,  7038416.,  7048216.,  7058016.,
      7099904.,  7109760.,  7119616.,  7129472.,  7171640.,  7181552.,
      7191464.,  7201376.,  7243824.,  7253792.,  7263760.,  7273728.,
      7895391.,  7906542.,  7917693.,  7928844.,  7975590.,  7986804.,
      7998018.,  8009232.,  8056293.,  8067570.,  8078847.,  8090124.,
      8137500.,  8148840.,  8160180.,  8171520.,  8758050.,  8770580.,
      8783110.,  8795640.,  8847160.,  8859760.,  8872360.,  8884960.,
      8936830.,  8949500.,  8962170.,  8974840.,  9027060.,  9039800.,
      9052540.,  9065280.,  7854315.,  7865718.,  7877121.,  7888524.,
      7934514.,  7945980.,  7957446.,  7968912.,  8015217.,  8026746.,
      8038275.,  8049804.,  8096424.,  8108016.,  8119608.,  8131200.,
      6955592.,  6965840.,  6976088.,  6986336.,  7026880.,  7037184.,
      7047488.,  7057792.,  7098616.,  7108976.,  7119336.,  7129696.,
      7170800.,  7181216.,  7191632.,  7202048.,  6062329.,  6071394.,
      6080459.,  6089524.,  6124706.,  6133820.,  6142934.,  6152048.,
      6187475.,  6196638.,  6205801.,  6214964.,  6250636.,  6259848.,
      6269060.,  6278272.,  4823434.,  4831540.,  4839646.,  4847752.,
      4876900.,  4885048.,  4893196.,  4901344.,  4930702.,  4938892.,
      4947082.,  4955272.,  4984840.,  4993072.,  5001304.,  5009536.,
      5489168.,  5498528.,  5507888.,  5517248.,  5550272.,  5559680.,
      5569088.,  5578496.,  5611760.,  5621216.,  5630672.,  5640128.,
      5673632.,  5683136.,  5692640.,  5702144.,  6147918.,  6158556.,
      6169194.,  6179832.,  6216660.,  6227352.,  6238044.,  6248736.,
      6285834.,  6296580.,  6307326.,  6318072.,  6355440.,  6366240.,
      6377040.,  6387840.,  6799300.,  6811240.,  6823180.,  6835120.,
      6875680.,  6887680.,  6899680.,  6911680.,  6952540.,  6964600.,
      6976660.,  6988720.,  7029880.,  7042000.,  7054120.,  7066240.,
      6078150.,  6089004.,  6099858.,  6110712.,  6146892.,  6157800.,
      6168708.,  6179616.,  6216066.,  6227028.,  6237990.,  6248952.,
      6285672.,  6296688.,  6307704.,  6318720.,  5365136.,  5374880.,
      5384624.,  5394368.,  5426240.,  5436032.,  5445824.,  5455616.,
      5487728.,  5497568.,  5507408.,  5517248.,  5549600.,  5559488.,
      5569376.,  5579264.,  4660642.,  4669252.,  4677862.,  4686472.,
      4714108.,  4722760.,  4731412.,  4740064.,  4767910.,  4776604.,
      4785298.,  4793992.,  4822048.,  4830784.,  4839520.,  4848256.,
      3565695.,  3573150.,  3580605.,  3588060.,  3610250.,  3617740.,
      3625230.,  3632720.,  3655085.,  3662610.,  3670135.,  3677660.,
      3700200.,  3707760.,  3715320.,  3722880.,  4042840.,  4051440.,
      4060040.,  4068640.,  4093760.,  4102400.,  4111040.,  4119680.,
      4145000.,  4153680.,  4162360.,  4171040.,  4196560.,  4205280.,
      4214000.,  4222720.,  4510965.,  4520730.,  4530495.,  4540260.,
      4568250.,  4578060.,  4587870.,  4597680.,  4625895.,  4635750.,
      4645605.,  4655460.,  4683900.,  4693800.,  4703700.,  4713600.,
      4969750.,  4980700.,  4991650.,  5002600.,  5033400.,  5044400.,
      5055400.,  5066400.,  5097450.,  5108500.,  5119550.,  5130600.,
      5161900.,  5173000.,  5184100.,  5195200.,  4424025.,  4433970.,
      4443915.,  4453860.,  4481310.,  4491300.,  4501290.,  4511280.,
      4538955.,  4548990.,  4559025.,  4569060.,  4596960.,  4607040.,
      4617120.,  4627200.,  3888280.,  3897200.,  3906120.,  3915040.,
      3939200.,  3948160.,  3957120.,  3966080.,  3990440.,  3999440.,
      4008440.,  4017440.,  4042000.,  4051040.,  4060080.,  4069120.,
      3362835.,  3370710.,  3378585.,  3386460.,  3407390.,  3415300.,
      3423210.,  3431120.,  3452225.,  3460170.,  3468115.,  3476060.,
      3497340.,  3505320.,  3513300.,  3521280.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x8x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      18072.,  18288.,  18504.,  18720.,  19424.,  19648.,  19872.,  20096.,
      20840.,  21072.,  21304.,  21536.,  22320.,  22560.,  22800.,  23040.,
      19896.,  20144.,  20392.,  20640.,  21376.,  21632.,  21888.,  22144.,
      22920.,  23184.,  23448.,  23712.,  24528.,  24800.,  25072.,  25344.,
      21720.,  22000.,  22280.,  22560.,  23328.,  23616.,  23904.,  24192.,
      25000.,  25296.,  25592.,  25888.,  26736.,  27040.,  27344.,  27648.,
      23544.,  23856.,  24168.,  24480.,  25280.,  25600.,  25920.,  26240.,
      27080.,  27408.,  27736.,  28064.,  28944.,  29280.,  29616.,  29952.,
      25368.,  25712.,  26056.,  26400.,  27232.,  27584.,  27936.,  28288.,
      29160.,  29520.,  29880.,  30240.,  31152.,  31520.,  31888.,  32256.,
      27192.,  27568.,  27944.,  28320.,  29184.,  29568.,  29952.,  30336.,
      31240.,  31632.,  32024.,  32416.,  33360.,  33760.,  34160.,  34560.,
      29016.,  29424.,  29832.,  30240.,  31136.,  31552.,  31968.,  32384.,
      33320.,  33744.,  34168.,  34592.,  35568.,  36000.,  36432.,  36864.,
      36312.,  36848.,  37384.,  37920.,  38944.,  39488.,  40032.,  40576.,
      41640.,  42192.,  42744.,  43296.,  44400.,  44960.,  45520.,  46080.,
      38136.,  38704.,  39272.,  39840.,  40896.,  41472.,  42048.,  42624.,
      43720.,  44304.,  44888.,  45472.,  46608.,  47200.,  47792.,  48384.,
      39960.,  40560.,  41160.,  41760.,  42848.,  43456.,  44064.,  44672.,
      45800.,  46416.,  47032.,  47648.,  48816.,  49440.,  50064.,  50688.,
      41784.,  42416.,  43048.,  43680.,  44800.,  45440.,  46080.,  46720.,
      47880.,  48528.,  49176.,  49824.,  51024.,  51680.,  52336.,  52992.,
      43608.,  44272.,  44936.,  45600.,  46752.,  47424.,  48096.,  48768.,
      49960.,  50640.,  51320.,  52000.,  53232.,  53920.,  54608.,  55296.,
      45432.,  46128.,  46824.,  47520.,  48704.,  49408.,  50112.,  50816.,
      52040.,  52752.,  53464.,  54176.,  55440.,  56160.,  56880.,  57600.,
      47256.,  47984.,  48712.,  49440.,  50656.,  51392.,  52128.,  52864.,
      54120.,  54864.,  55608.,  56352.,  57648.,  58400.,  59152.,  59904.,
      54552.,  55408.,  56264.,  57120.,  58464.,  59328.,  60192.,  61056.,
      62440.,  63312.,  64184.,  65056.,  66480.,  67360.,  68240.,  69120.,
      56376.,  57264.,  58152.,  59040.,  60416.,  61312.,  62208.,  63104.,
      64520.,  65424.,  66328.,  67232.,  68688.,  69600.,  70512.,  71424.,
      58200.,  59120.,  60040.,  60960.,  62368.,  63296.,  64224.,  65152.,
      66600.,  67536.,  68472.,  69408.,  70896.,  71840.,  72784.,  73728.,
      60024.,  60976.,  61928.,  62880.,  64320.,  65280.,  66240.,  67200.,
      68680.,  69648.,  70616.,  71584.,  73104.,  74080.,  75056.,  76032.,
      61848.,  62832.,  63816.,  64800.,  66272.,  67264.,  68256.,  69248.,
      70760.,  71760.,  72760.,  73760.,  75312.,  76320.,  77328.,  78336.,
      63672.,  64688.,  65704.,  66720.,  68224.,  69248.,  70272.,  71296.,
      72840.,  73872.,  74904.,  75936.,  77520.,  78560.,  79600.,  80640.,
      65496.,  66544.,  67592.,  68640.,  70176.,  71232.,  72288.,  73344.,
      74920.,  75984.,  77048.,  78112.,  79728.,  80800.,  81872.,  82944.,
      72792.,  73968.,  75144.,  76320.,  77984.,  79168.,  80352.,  81536.,
      83240.,  84432.,  85624.,  86816.,  88560.,  89760.,  90960.,  92160.,
      74616.,  75824.,  77032.,  78240.,  79936.,  81152.,  82368.,  83584.,
      85320.,  86544.,  87768.,  88992.,  90768.,  92000.,  93232.,  94464.,
      76440.,  77680.,  78920.,  80160.,  81888.,  83136.,  84384.,  85632.,
      87400.,  88656.,  89912.,  91168.,  92976.,  94240.,  95504.,  96768.,
      78264.,  79536.,  80808.,  82080.,  83840.,  85120.,  86400.,  87680.,
      89480.,  90768.,  92056.,  93344.,  95184.,  96480.,  97776.,  99072.,
      80088.,  81392.,  82696.,  84000.,  85792.,  87104.,  88416.,  89728.,
      91560.,  92880.,  94200.,  95520.,  97392.,  98720.,  100048., 101376.,
      81912.,  83248.,  84584.,  85920.,  87744.,  89088.,  90432.,  91776.,
      93640.,  94992.,  96344.,  97696.,  99600.,  100960., 102320., 103680.,
      83736.,  85104.,  86472.,  87840.,  89696.,  91072.,  92448.,  93824.,
      95720.,  97104.,  98488.,  99872.,  101808., 103200., 104592., 105984.,
      91032.,  92528.,  94024.,  95520.,  97504.,  99008.,  100512., 102016.,
      104040., 105552., 107064., 108576., 110640., 112160., 113680., 115200.,
      92856.,  94384.,  95912.,  97440.,  99456.,  100992., 102528., 104064.,
      106120., 107664., 109208., 110752., 112848., 114400., 115952., 117504.,
      94680.,  96240.,  97800.,  99360.,  101408., 102976., 104544., 106112.,
      108200., 109776., 111352., 112928., 115056., 116640., 118224., 119808.,
      96504.,  98096.,  99688.,  101280., 103360., 104960., 106560., 108160.,
      110280., 111888., 113496., 115104., 117264., 118880., 120496., 122112.,
      98328.,  99952.,  101576., 103200., 105312., 106944., 108576., 110208.,
      112360., 114000., 115640., 117280., 119472., 121120., 122768., 124416.,
      100152., 101808., 103464., 105120., 107264., 108928., 110592., 112256.,
      114440., 116112., 117784., 119456., 121680., 123360., 125040., 126720.,
      101976., 103664., 105352., 107040., 109216., 110912., 112608., 114304.,
      116520., 118224., 119928., 121632., 123888., 125600., 127312., 129024.,
      109272., 111088., 112904., 114720., 117024., 118848., 120672., 122496.,
      124840., 126672., 128504., 130336., 132720., 134560., 136400., 138240.,
      111096., 112944., 114792., 116640., 118976., 120832., 122688., 124544.,
      126920., 128784., 130648., 132512., 134928., 136800., 138672., 140544.,
      112920., 114800., 116680., 118560., 120928., 122816., 124704., 126592.,
      129000., 130896., 132792., 134688., 137136., 139040., 140944., 142848.,
      114744., 116656., 118568., 120480., 122880., 124800., 126720., 128640.,
      131080., 133008., 134936., 136864., 139344., 141280., 143216., 145152.,
      116568., 118512., 120456., 122400., 124832., 126784., 128736., 130688.,
      133160., 135120., 137080., 139040., 141552., 143520., 145488., 147456.,
      118392., 120368., 122344., 124320., 126784., 128768., 130752., 132736.,
      135240., 137232., 139224., 141216., 143760., 145760., 147760., 149760.,
      120216., 122224., 124232., 126240., 128736., 130752., 132768., 134784.,
      137320., 139344., 141368., 143392., 145968., 148000., 150032., 152064.,
      127512., 129648., 131784., 133920., 136544., 138688., 140832., 142976.,
      145640., 147792., 149944., 152096., 154800., 156960., 159120., 161280.,
      129336., 131504., 133672., 135840., 138496., 140672., 142848., 145024.,
      147720., 149904., 152088., 154272., 157008., 159200., 161392., 163584.,
      131160., 133360., 135560., 137760., 140448., 142656., 144864., 147072.,
      149800., 152016., 154232., 156448., 159216., 161440., 163664., 165888.,
      132984., 135216., 137448., 139680., 142400., 144640., 146880., 149120.,
      151880., 154128., 156376., 158624., 161424., 163680., 165936., 168192.,
      134808., 137072., 139336., 141600., 144352., 146624., 148896., 151168.,
      153960., 156240., 158520., 160800., 163632., 165920., 168208., 170496.,
      136632., 138928., 141224., 143520., 146304., 148608., 150912., 153216.,
      156040., 158352., 160664., 162976., 165840., 168160., 170480., 172800.,
      138456., 140784., 143112., 145440., 148256., 150592., 152928., 155264.,
      158120., 160464., 162808., 165152., 168048., 170400., 172752., 175104.};
  const std::array<int, 4> in_shape = {{1, 8, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      40160., 48702., 57400.,  66248.,  58408.,  50430., 42320.,
      52500., 63427., 74480.,  85652.,  75264.,  64771., 54180.,
      65600., 79016., 92512.,  106080., 92960.,  79784., 66560.,
      79140., 95085., 111048., 127020., 111048., 95085., 79140.,
      66560., 79784., 92960.,  106080., 92512.,  79016., 65600.,
      54180., 64771., 75264.,  85652.,  74480.,  63427., 52500.,
      42320., 50430., 58408.,  66248.,  57400.,  48702., 40160.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      265.,  286.,  307.,  328.,  349.,  370.,  391.,  433.,  454.,  475.,
      496.,  517.,  538.,  559.,  601.,  622.,  643.,  664.,  685.,  706.,
      727.,  769.,  790.,  811.,  832.,  853.,  874.,  895.,  937.,  958.,
      979.,  1000., 1021., 1042., 1063., 1105., 1126., 1147., 1168., 1189.,
      1210., 1231., 1273., 1294., 1315., 1336., 1357., 1378., 1399.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      79630.,  80320.,  96558.,  97404.,  113792., 114800., 131320., 132496.,
      115766., 116816., 99942.,  100860., 83860.,  84640.,  104055., 105000.,
      125699., 126854., 147588., 148960., 169708., 171304., 149107., 150528.,
      128303., 129542., 107310., 108360., 129960., 131200., 156520., 158032.,
      183232., 185024., 210080., 212160., 184072., 185920., 157960., 159568.,
      131760., 133120., 156705., 158280., 188253., 190170., 219828., 222096.,
      251412., 254040., 219765., 222096., 188145., 190170., 156570., 158280.,
      131560., 133120., 157672., 159568., 183680., 185920., 209568., 212160.,
      182728., 185024., 156040., 158032., 129520., 131200., 106855., 108360.,
      127715., 129542., 148372., 150528., 168812., 171304., 146755., 148960.,
      124943., 126854., 103390., 105000., 83230.,  84640.,  99150.,  100860.,
      114800., 116816., 130168., 132496., 112742., 114800., 95622.,  97404.,
      78820.,  80320.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      473.,  530.,  509.,  572.,  545.,  614.,  581.,  656.,  617.,  698.,
      653.,  740.,  689.,  782.,  761.,  866.,  797.,  908.,  833.,  950.,
      869.,  992.,  905.,  1034., 941.,  1076., 977.,  1118., 1049., 1202.,
      1085., 1244., 1121., 1286., 1157., 1328., 1193., 1370., 1229., 1412.,
      1265., 1454., 1337., 1538., 1373., 1580., 1409., 1622., 1445., 1664.,
      1481., 1706., 1517., 1748., 1553., 1790., 1625., 1874., 1661., 1916.,
      1697., 1958., 1733., 2000., 1769., 2042., 1805., 2084., 1841., 2126.,
      1913., 2210., 1949., 2252., 1985., 2294., 2021., 2336., 2057., 2378.,
      2093., 2420., 2129., 2462., 2201., 2546., 2237., 2588., 2273., 2630.,
      2309., 2672., 2345., 2714., 2381., 2756., 2417., 2798.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      158570., 159260., 159950., 160640., 192270., 193116., 193962., 194808.,
      226576., 227584., 228592., 229600., 261464., 262640., 263816., 264992.,
      230482., 231532., 232582., 233632., 198966., 199884., 200802., 201720.,
      166940., 167720., 168500., 169280., 207165., 208110., 209055., 210000.,
      250243., 251398., 252553., 253708., 293804., 295176., 296548., 297920.,
      337820., 339416., 341012., 342608., 296793., 298214., 299635., 301056.,
      255367., 256606., 257845., 259084., 213570., 214620., 215670., 216720.,
      258680., 259920., 261160., 262400., 311528., 313040., 314552., 316064.,
      364672., 366464., 368256., 370048., 418080., 420160., 422240., 424320.,
      366296., 368144., 369992., 371840., 314312., 315920., 317528., 319136.,
      262160., 263520., 264880., 266240., 311835., 313410., 314985., 316560.,
      374589., 376506., 378423., 380340., 437388., 439656., 441924., 444192.,
      500196., 502824., 505452., 508080., 437199., 439530., 441861., 444192.,
      374265., 376290., 378315., 380340., 311430., 313140., 314850., 316560.,
      261560., 263120., 264680., 266240., 313448., 315344., 317240., 319136.,
      365120., 367360., 369600., 371840., 416544., 419136., 421728., 424320.,
      363160., 365456., 367752., 370048., 310088., 312080., 314072., 316064.,
      257360., 259040., 260720., 262400., 212205., 213710., 215215., 216720.,
      253603., 255430., 257257., 259084., 294588., 296744., 298900., 301056.,
      335132., 337624., 340116., 342608., 291305., 293510., 295715., 297920.,
      247975., 249886., 251797., 253708., 205170., 206780., 208390., 210000.,
      165050., 166460., 167870., 169280., 196590., 198300., 200010., 201720.,
      227584., 229600., 231616., 233632., 258008., 260336., 262664., 264992.,
      223426., 225484., 227542., 229600., 189462., 191244., 193026., 194808.,
      156140., 157640., 159140., 160640.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      889.,  946.,  1003., 1060., 955.,  1018., 1081., 1144., 1021., 1090.,
      1159., 1228., 1087., 1162., 1237., 1312., 1153., 1234., 1315., 1396.,
      1219., 1306., 1393., 1480., 1285., 1378., 1471., 1564., 1417., 1522.,
      1627., 1732., 1483., 1594., 1705., 1816., 1549., 1666., 1783., 1900.,
      1615., 1738., 1861., 1984., 1681., 1810., 1939., 2068., 1747., 1882.,
      2017., 2152., 1813., 1954., 2095., 2236., 1945., 2098., 2251., 2404.,
      2011., 2170., 2329., 2488., 2077., 2242., 2407., 2572., 2143., 2314.,
      2485., 2656., 2209., 2386., 2563., 2740., 2275., 2458., 2641., 2824.,
      2341., 2530., 2719., 2908., 2473., 2674., 2875., 3076., 2539., 2746.,
      2953., 3160., 2605., 2818., 3031., 3244., 2671., 2890., 3109., 3328.,
      2737., 2962., 3187., 3412., 2803., 3034., 3265., 3496., 2869., 3106.,
      3343., 3580., 3001., 3250., 3499., 3748., 3067., 3322., 3577., 3832.,
      3133., 3394., 3655., 3916., 3199., 3466., 3733., 4000., 3265., 3538.,
      3811., 4084., 3331., 3610., 3889., 4168., 3397., 3682., 3967., 4252.,
      3529., 3826., 4123., 4420., 3595., 3898., 4201., 4504., 3661., 3970.,
      4279., 4588., 3727., 4042., 4357., 4672., 3793., 4114., 4435., 4756.,
      3859., 4186., 4513., 4840., 3925., 4258., 4591., 4924., 4057., 4402.,
      4747., 5092., 4123., 4474., 4825., 5176., 4189., 4546., 4903., 5260.,
      4255., 4618., 4981., 5344., 4321., 4690., 5059., 5428., 4387., 4762.,
      5137., 5512., 4453., 4834., 5215., 5596.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      156290., 160640., 189588., 194808., 223510., 229600., 258032., 264992.,
      227542., 233632., 196500., 201720., 164930., 169280., 204925., 210000.,
      247618., 253708., 290815., 297920., 334488., 342608., 293951., 301056.,
      252994., 259084., 211645., 216720., 256600., 262400., 309104., 316064.,
      361928., 370048., 415040., 424320., 363720., 371840., 312176., 319136.,
      260440., 266240., 310035., 316560., 372510., 380340., 435057., 444192.,
      497640., 508080., 435057., 444192., 372510., 380340., 310035., 316560.,
      260440., 266240., 312176., 319136., 363720., 371840., 415040., 424320.,
      361928., 370048., 309104., 316064., 256600., 262400., 211645., 216720.,
      252994., 259084., 293951., 301056., 334488., 342608., 290815., 297920.,
      247618., 253708., 204925., 210000., 164930., 169280., 196500., 201720.,
      227542., 233632., 258032., 264992., 223510., 229600., 189588., 194808.,
      156290., 160640.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      910.,  1060., 982.,  1144., 1054., 1228., 1126., 1312., 1198., 1396.,
      1270., 1480., 1342., 1564., 1486., 1732., 1558., 1816., 1630., 1900.,
      1702., 1984., 1774., 2068., 1846., 2152., 1918., 2236., 2062., 2404.,
      2134., 2488., 2206., 2572., 2278., 2656., 2350., 2740., 2422., 2824.,
      2494., 2908., 2638., 3076., 2710., 3160., 2782., 3244., 2854., 3328.,
      2926., 3412., 2998., 3496., 3070., 3580., 3214., 3748., 3286., 3832.,
      3358., 3916., 3430., 4000., 3502., 4084., 3574., 4168., 3646., 4252.,
      3790., 4420., 3862., 4504., 3934., 4588., 4006., 4672., 4078., 4756.,
      4150., 4840., 4222., 4924., 4366., 5092., 4438., 5176., 4510., 5260.,
      4582., 5344., 4654., 5428., 4726., 5512., 4798., 5596.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      311230., 312580., 319900.,  321280.,  377520., 379176., 387924., 389616.,
      445046., 447020., 457184.,  459200.,  513760., 516064., 527632., 529984.,
      453026., 455084., 465164.,  467264.,  391200., 393000., 401604., 403440.,
      328330., 329860., 337000.,  338560.,  407995., 409850., 418110., 420000.,
      492968., 495236., 505106.,  507416.,  578935., 581630., 593096., 595840.,
      665840., 668976., 682024.,  685216.,  585109., 587902., 599270., 602112.,
      503552., 505988., 515690.,  518168.,  421225., 423290., 431340., 433440.,
      510760., 513200., 522320.,  524800.,  615232., 618208., 629104., 632128.,
      720328., 723856., 736512.,  740096.,  825984., 830080., 844480., 848640.,
      723800., 727440., 739984.,  743680.,  621184., 624352., 635056., 638272.,
      518200., 520880., 529760.,  532480.,  616965., 620070., 629970., 633120.,
      741240., 745020., 756846.,  760680.,  865641., 870114., 883848., 888384.,
      990096., 995280., 1010904., 1016160., 865515., 870114., 883722., 888384.,
      741024., 745020., 756630.,  760680.,  616695., 620070., 629700., 633120.,
      517800., 520880., 529360.,  532480.,  620608., 624352., 634480., 638272.,
      723016., 727440., 739200.,  743680.,  824960., 830080., 843456., 848640.,
      719320., 723856., 735504.,  740096.,  614272., 618208., 628144., 632128.,
      509880., 513200., 521440.,  524800.,  420315., 423290., 430430., 433440.,
      502376., 505988., 514514.,  518168.,  583639., 587902., 597800., 602112.,
      664048., 668976., 680232.,  685216.,  577269., 581630., 591430., 595840.,
      491456., 495236., 503594.,  507416.,  406665., 409850., 416780., 420000.,
      327070., 329860., 335740.,  338560.,  389616., 393000., 400020., 403440.,
      451094., 455084., 463232.,  467264.,  511456., 516064., 525328., 529984.,
      442946., 447020., 455084.,  459200.,  375648., 379176., 386052., 389616.,
      309610., 312580., 318280.,  321280.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1712.,  1820.,  2006.,  2120.,  1844.,  1964.,  2162.,  2288.,  1976.,
      2108.,  2318.,  2456.,  2108.,  2252.,  2474.,  2624.,  2240.,  2396.,
      2630.,  2792.,  2372.,  2540.,  2786.,  2960.,  2504.,  2684.,  2942.,
      3128.,  2768.,  2972.,  3254.,  3464.,  2900.,  3116.,  3410.,  3632.,
      3032.,  3260.,  3566.,  3800.,  3164.,  3404.,  3722.,  3968.,  3296.,
      3548.,  3878.,  4136.,  3428.,  3692.,  4034.,  4304.,  3560.,  3836.,
      4190.,  4472.,  3824.,  4124.,  4502.,  4808.,  3956.,  4268.,  4658.,
      4976.,  4088.,  4412.,  4814.,  5144.,  4220.,  4556.,  4970.,  5312.,
      4352.,  4700.,  5126.,  5480.,  4484.,  4844.,  5282.,  5648.,  4616.,
      4988.,  5438.,  5816.,  4880.,  5276.,  5750.,  6152.,  5012.,  5420.,
      5906.,  6320.,  5144.,  5564.,  6062.,  6488.,  5276.,  5708.,  6218.,
      6656.,  5408.,  5852.,  6374.,  6824.,  5540.,  5996.,  6530.,  6992.,
      5672.,  6140.,  6686.,  7160.,  5936.,  6428.,  6998.,  7496.,  6068.,
      6572.,  7154.,  7664.,  6200.,  6716.,  7310.,  7832.,  6332.,  6860.,
      7466.,  8000.,  6464.,  7004.,  7622.,  8168.,  6596.,  7148.,  7778.,
      8336.,  6728.,  7292.,  7934.,  8504.,  6992.,  7580.,  8246.,  8840.,
      7124.,  7724.,  8402.,  9008.,  7256.,  7868.,  8558.,  9176.,  7388.,
      8012.,  8714.,  9344.,  7520.,  8156.,  8870.,  9512.,  7652.,  8300.,
      9026.,  9680.,  7784.,  8444.,  9182.,  9848.,  8048.,  8732.,  9494.,
      10184., 8180.,  8876.,  9650.,  10352., 8312.,  9020.,  9806.,  10520.,
      8444.,  9164.,  9962.,  10688., 8576.,  9308.,  10118., 10856., 8708.,
      9452.,  10274., 11024., 8840.,  9596.,  10430., 11192.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      621110.,  622460.,  623810.,  625160.,  638420.,  639800.,  641180.,
      642560.,  753384.,  755040.,  756696.,  758352.,  774156.,  775848.,
      777540.,  779232.,  888118.,  890092.,  892066.,  894040.,  912352.,
      914368.,  916384.,  918400.,  1025216., 1027520., 1029824., 1032128.,
      1052912., 1055264., 1057616., 1059968., 903994.,  906052.,  908110.,
      910168.,  928228.,  930328.,  932428.,  934528.,  780600.,  782400.,
      784200.,  786000.,  801372.,  803208.,  805044.,  806880.,  655130.,
      656660.,  658190.,  659720.,  672440.,  674000.,  675560.,  677120.,
      814135.,  815990.,  817845.,  819700.,  834330.,  836220.,  838110.,
      840000.,  983668.,  985936.,  988204.,  990472.,  1007902., 1010212.,
      1012522., 1014832., 1155175., 1157870., 1160565., 1163260., 1183448.,
      1186192., 1188936., 1191680., 1328544., 1331680., 1334816., 1337952.,
      1360856., 1364048., 1367240., 1370432., 1167425., 1170218., 1173011.,
      1175804., 1195698., 1198540., 1201382., 1204224., 1004668., 1007104.,
      1009540., 1011976., 1028902., 1031380., 1033858., 1036336., 840385.,
      842450.,  844515.,  846580.,  860580.,  862680.,  864780.,  866880.,
      1019080., 1021520., 1023960., 1026400., 1042160., 1044640., 1047120.,
      1049600., 1227488., 1230464., 1233440., 1236416., 1255184., 1258208.,
      1261232., 1264256., 1437128., 1440656., 1444184., 1447712., 1469440.,
      1473024., 1476608., 1480192., 1647872., 1651968., 1656064., 1660160.,
      1684800., 1688960., 1693120., 1697280., 1443960., 1447600., 1451240.,
      1454880., 1476272., 1479968., 1483664., 1487360., 1239200., 1242368.,
      1245536., 1248704., 1266896., 1270112., 1273328., 1276544., 1033720.,
      1036400., 1039080., 1041760., 1056800., 1059520., 1062240., 1064960.,
      1230825., 1233930., 1237035., 1240140., 1256790., 1259940., 1263090.,
      1266240., 1478700., 1482480., 1486260., 1490040., 1509858., 1513692.,
      1517526., 1521360., 1726809., 1731282., 1735755., 1740228., 1763160.,
      1767696., 1772232., 1776768., 1975008., 1980192., 1985376., 1990560.,
      2016552., 2021808., 2027064., 2032320., 1726431., 1731030., 1735629.,
      1740228., 1762782., 1767444., 1772106., 1776768., 1478052., 1482048.,
      1486044., 1490040., 1509210., 1513260., 1517310., 1521360., 1230015.,
      1233390., 1236765., 1240140., 1255980., 1259400., 1262820., 1266240.,
      1032520., 1035600., 1038680., 1041760., 1055600., 1058720., 1061840.,
      1064960., 1237472., 1241216., 1244960., 1248704., 1265168., 1268960.,
      1272752., 1276544., 1441608., 1446032., 1450456., 1454880., 1473920.,
      1478400., 1482880., 1487360., 1644800., 1649920., 1655040., 1660160.,
      1681728., 1686912., 1692096., 1697280., 1434104., 1438640., 1443176.,
      1447712., 1466416., 1471008., 1475600., 1480192., 1224608., 1228544.,
      1232480., 1236416., 1252304., 1256288., 1260272., 1264256., 1016440.,
      1019760., 1023080., 1026400., 1039520., 1042880., 1046240., 1049600.,
      837655.,  840630.,  843605.,  846580.,  857850.,  860860.,  863870.,
      866880.,  1001140., 1004752., 1008364., 1011976., 1025374., 1029028.,
      1032682., 1036336., 1163015., 1167278., 1171541., 1175804., 1191288.,
      1195600., 1199912., 1204224., 1323168., 1328096., 1333024., 1337952.,
      1355480., 1360464., 1365448., 1370432., 1150177., 1154538., 1158899.,
      1163260., 1178450., 1182860., 1187270., 1191680., 979132.,  982912.,
      986692.,  990472.,  1003366., 1007188., 1011010., 1014832., 810145.,
      813330.,  816515.,  819700.,  830340.,  833560.,  836780.,  840000.,
      651350.,  654140.,  656930.,  659720.,  668660.,  671480.,  674300.,
      677120.,  775848.,  779232.,  782616.,  786000.,  796620.,  800040.,
      803460.,  806880.,  898198.,  902188.,  906178.,  910168.,  922432.,
      926464.,  930496.,  934528.,  1018304., 1022912., 1027520., 1032128.,
      1046000., 1050656., 1055312., 1059968., 881818.,  885892.,  889966.,
      894040.,  906052.,  910168.,  914284.,  918400.,  747768.,  751296.,
      754824.,  758352.,  768540.,  772104.,  775668.,  779232.,  616250.,
      619220.,  622190.,  625160.,  633560.,  636560.,  639560.,  642560.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3316.,  3424.,  3532.,  3640.,  3898.,  4012.,  4126.,  4240.,  3568.,
      3688.,  3808.,  3928.,  4198.,  4324.,  4450.,  4576.,  3820.,  3952.,
      4084.,  4216.,  4498.,  4636.,  4774.,  4912.,  4072.,  4216.,  4360.,
      4504.,  4798.,  4948.,  5098.,  5248.,  4324.,  4480.,  4636.,  4792.,
      5098.,  5260.,  5422.,  5584.,  4576.,  4744.,  4912.,  5080.,  5398.,
      5572.,  5746.,  5920.,  4828.,  5008.,  5188.,  5368.,  5698.,  5884.,
      6070.,  6256.,  5332.,  5536.,  5740.,  5944.,  6298.,  6508.,  6718.,
      6928.,  5584.,  5800.,  6016.,  6232.,  6598.,  6820.,  7042.,  7264.,
      5836.,  6064.,  6292.,  6520.,  6898.,  7132.,  7366.,  7600.,  6088.,
      6328.,  6568.,  6808.,  7198.,  7444.,  7690.,  7936.,  6340.,  6592.,
      6844.,  7096.,  7498.,  7756.,  8014.,  8272.,  6592.,  6856.,  7120.,
      7384.,  7798.,  8068.,  8338.,  8608.,  6844.,  7120.,  7396.,  7672.,
      8098.,  8380.,  8662.,  8944.,  7348.,  7648.,  7948.,  8248.,  8698.,
      9004.,  9310.,  9616.,  7600.,  7912.,  8224.,  8536.,  8998.,  9316.,
      9634.,  9952.,  7852.,  8176.,  8500.,  8824.,  9298.,  9628.,  9958.,
      10288., 8104.,  8440.,  8776.,  9112.,  9598.,  9940.,  10282., 10624.,
      8356.,  8704.,  9052.,  9400.,  9898.,  10252., 10606., 10960., 8608.,
      8968.,  9328.,  9688.,  10198., 10564., 10930., 11296., 8860.,  9232.,
      9604.,  9976.,  10498., 10876., 11254., 11632., 9364.,  9760.,  10156.,
      10552., 11098., 11500., 11902., 12304., 9616.,  10024., 10432., 10840.,
      11398., 11812., 12226., 12640., 9868.,  10288., 10708., 11128., 11698.,
      12124., 12550., 12976., 10120., 10552., 10984., 11416., 11998., 12436.,
      12874., 13312., 10372., 10816., 11260., 11704., 12298., 12748., 13198.,
      13648., 10624., 11080., 11536., 11992., 12598., 13060., 13522., 13984.,
      10876., 11344., 11812., 12280., 12898., 13372., 13846., 14320., 11380.,
      11872., 12364., 12856., 13498., 13996., 14494., 14992., 11632., 12136.,
      12640., 13144., 13798., 14308., 14818., 15328., 11884., 12400., 12916.,
      13432., 14098., 14620., 15142., 15664., 12136., 12664., 13192., 13720.,
      14398., 14932., 15466., 16000., 12388., 12928., 13468., 14008., 14698.,
      15244., 15790., 16336., 12640., 13192., 13744., 14296., 14998., 15556.,
      16114., 16672., 12892., 13456., 14020., 14584., 15298., 15868., 16438.,
      17008., 13396., 13984., 14572., 15160., 15898., 16492., 17086., 17680.,
      13648., 14248., 14848., 15448., 16198., 16804., 17410., 18016., 13900.,
      14512., 15124., 15736., 16498., 17116., 17734., 18352., 14152., 14776.,
      15400., 16024., 16798., 17428., 18058., 18688., 14404., 15040., 15676.,
      16312., 17098., 17740., 18382., 19024., 14656., 15304., 15952., 16600.,
      17398., 18052., 18706., 19360., 14908., 15568., 16228., 16888., 17698.,
      18364., 19030., 19696., 15412., 16096., 16780., 17464., 18298., 18988.,
      19678., 20368., 15664., 16360., 17056., 17752., 18598., 19300., 20002.,
      20704., 15916., 16624., 17332., 18040., 18898., 19612., 20326., 21040.,
      16168., 16888., 17608., 18328., 19198., 19924., 20650., 21376., 16420.,
      17152., 17884., 18616., 19498., 20236., 20974., 21712., 16672., 17416.,
      18160., 18904., 19798., 20548., 21298., 22048., 16924., 17680., 18436.,
      19192., 20098., 20860., 21622., 22384.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      616550.,  625160.,  633830.,  642560.,  748020.,  758352.,  768756.,
      779232.,  881986.,  894040.,  906178.,  918400.,  1018352., 1032128.,
      1046000., 1059968., 898114.,  910168.,  922306.,  934528.,  775668.,
      786000.,  796404.,  806880.,  651110.,  659720.,  668390.,  677120.,
      809655.,  819700.,  829815.,  840000.,  978418.,  990472.,  1002610.,
      1014832., 1149197., 1163260., 1177421., 1191680., 1321880., 1337952.,
      1354136., 1370432., 1161741., 1175804., 1189965., 1204224., 999922.,
      1011976., 1024114., 1036336., 836535.,  846580.,  856695.,  866880.,
      1014920., 1026400., 1037960., 1049600., 1222640., 1236416., 1250288.,
      1264256., 1431640., 1447712., 1463896., 1480192., 1641792., 1660160.,
      1678656., 1697280., 1438808., 1454880., 1471064., 1487360., 1234928.,
      1248704., 1262576., 1276544., 1030280., 1041760., 1053320., 1064960.,
      1227225., 1240140., 1253145., 1266240., 1474542., 1490040., 1505646.,
      1521360., 1722147., 1740228., 1758435., 1776768., 1969896., 1990560.,
      2011368., 2032320., 1722147., 1740228., 1758435., 1776768., 1474542.,
      1490040., 1505646., 1521360., 1227225., 1240140., 1253145., 1266240.,
      1030280., 1041760., 1053320., 1064960., 1234928., 1248704., 1262576.,
      1276544., 1438808., 1454880., 1471064., 1487360., 1641792., 1660160.,
      1678656., 1697280., 1431640., 1447712., 1463896., 1480192., 1222640.,
      1236416., 1250288., 1264256., 1014920., 1026400., 1037960., 1049600.,
      836535.,  846580.,  856695.,  866880.,  999922.,  1011976., 1024114.,
      1036336., 1161741., 1175804., 1189965., 1204224., 1321880., 1337952.,
      1354136., 1370432., 1149197., 1163260., 1177421., 1191680., 978418.,
      990472.,  1002610., 1014832., 809655.,  819700.,  829815.,  840000.,
      651110.,  659720.,  668390.,  677120.,  775668.,  786000.,  796404.,
      806880.,  898114.,  910168.,  922306.,  934528.,  1018352., 1032128.,
      1046000., 1059968., 881986.,  894040.,  906178.,  918400.,  748020.,
      758352.,  768756.,  779232.,  616550.,  625160.,  633830.,  642560.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3358.,  3640.,  3934.,  4240.,  3622.,  3928.,  4246.,  4576.,  3886.,
      4216.,  4558.,  4912.,  4150.,  4504.,  4870.,  5248.,  4414.,  4792.,
      5182.,  5584.,  4678.,  5080.,  5494.,  5920.,  4942.,  5368.,  5806.,
      6256.,  5470.,  5944.,  6430.,  6928.,  5734.,  6232.,  6742.,  7264.,
      5998.,  6520.,  7054.,  7600.,  6262.,  6808.,  7366.,  7936.,  6526.,
      7096.,  7678.,  8272.,  6790.,  7384.,  7990.,  8608.,  7054.,  7672.,
      8302.,  8944.,  7582.,  8248.,  8926.,  9616.,  7846.,  8536.,  9238.,
      9952.,  8110.,  8824.,  9550.,  10288., 8374.,  9112.,  9862.,  10624.,
      8638.,  9400.,  10174., 10960., 8902.,  9688.,  10486., 11296., 9166.,
      9976.,  10798., 11632., 9694.,  10552., 11422., 12304., 9958.,  10840.,
      11734., 12640., 10222., 11128., 12046., 12976., 10486., 11416., 12358.,
      13312., 10750., 11704., 12670., 13648., 11014., 11992., 12982., 13984.,
      11278., 12280., 13294., 14320., 11806., 12856., 13918., 14992., 12070.,
      13144., 14230., 15328., 12334., 13432., 14542., 15664., 12598., 13720.,
      14854., 16000., 12862., 14008., 15166., 16336., 13126., 14296., 15478.,
      16672., 13390., 14584., 15790., 17008., 13918., 15160., 16414., 17680.,
      14182., 15448., 16726., 18016., 14446., 15736., 17038., 18352., 14710.,
      16024., 17350., 18688., 14974., 16312., 17662., 19024., 15238., 16600.,
      17974., 19360., 15502., 16888., 18286., 19696., 16030., 17464., 18910.,
      20368., 16294., 17752., 19222., 20704., 16558., 18040., 19534., 21040.,
      16822., 18328., 19846., 21376., 17086., 18616., 20158., 21712., 17350.,
      18904., 20470., 22048., 17614., 19192., 20782., 22384.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1230430., 1233100., 1247620., 1250320., 1264930., 1267660., 1282360.,
      1285120., 1492764., 1496040., 1513392., 1516704., 1534164., 1537512.,
      1555080., 1558464., 1760066., 1763972., 1784132., 1788080., 1808366.,
      1812356., 1832768., 1836800., 2032144., 2036704., 2059648., 2064256.,
      2087344., 2092000., 2115232., 2119936., 1792154., 1796228., 1816220.,
      1820336., 1840454., 1844612., 1864856., 1869056., 1547772., 1551336.,
      1568400., 1572000., 1589172., 1592808., 1610088., 1613760., 1299190.,
      1302220., 1316380., 1319440., 1333690., 1336780., 1351120., 1354240.,
      1615635., 1619310., 1635690., 1639400., 1655885., 1659630., 1676220.,
      1680000., 1952342., 1956836., 1976408., 1980944., 2000642., 2005220.,
      2025044., 2029664., 2293053., 2298394., 2321130., 2326520., 2349403.,
      2354842., 2377872., 2383360., 2637544., 2643760., 2669632., 2675904.,
      2701944., 2708272., 2734480., 2740864., 2317945., 2323482., 2346022.,
      2351608., 2374295., 2379930., 2402764., 2408448., 1995014., 1999844.,
      2019080., 2023952., 2043314., 2048228., 2067716., 2072672., 1668975.,
      1673070., 1689030., 1693160., 1709225., 1713390., 1729560., 1733760.,
      2025000., 2029840., 2047920., 2052800., 2071000., 2075920., 2094240.,
      2099200., 2439376., 2445280., 2466880., 2472832., 2494576., 2500576.,
      2522464., 2528512., 2856280., 2863280., 2888368., 2895424., 2920680.,
      2927792., 2953216., 2960384., 3275456., 3283584., 3312128., 3320320.,
      3349056., 3357312., 3386240., 3394560., 2870392., 2877616., 2902480.,
      2909760., 2934792., 2942128., 2967328., 2974720., 2463568., 2469856.,
      2491072., 2497408., 2518768., 2525152., 2546656., 2553088., 2055240.,
      2060560., 2078160., 2083520., 2101240., 2106640., 2124480., 2129920.,
      2448285., 2454450., 2474070., 2480280., 2500035., 2506290., 2526180.,
      2532480., 2941578., 2949084., 2972520., 2980080., 3003678., 3011292.,
      3035052., 3042720., 3435411., 3444294., 3471510., 3480456., 3507861.,
      3516870., 3544464., 3553536., 3929496., 3939792., 3970752., 3981120.,
      4012296., 4022736., 4054128., 4064640., 3435159., 3444294., 3471258.,
      3480456., 3507609., 3516870., 3544212., 3553536., 2941146., 2949084.,
      2972088., 2980080., 3003246., 3011292., 3034620., 3042720., 2447745.,
      2454450., 2473530., 2480280., 2499495., 2506290., 2525640., 2532480.,
      2054440., 2060560., 2077360., 2083520., 2100440., 2106640., 2123680.,
      2129920., 2462416., 2469856., 2489920., 2497408., 2517616., 2525152.,
      2545504., 2553088., 2868824., 2877616., 2900912., 2909760., 2933224.,
      2942128., 2965760., 2974720., 3273408., 3283584., 3310080., 3320320.,
      3347008., 3357312., 3384192., 3394560., 2854264., 2863280., 2886352.,
      2895424., 2918664., 2927792., 2951200., 2960384., 2437456., 2445280.,
      2464960., 2472832., 2492656., 2500576., 2520544., 2528512., 2023240.,
      2029840., 2046160., 2052800., 2069240., 2075920., 2092480., 2099200.,
      1667155., 1673070., 1687210., 1693160., 1707405., 1713390., 1727740.,
      1733760., 1992662., 1999844., 2016728., 2023952., 2040962., 2048228.,
      2065364., 2072672., 2315005., 2323482., 2343082., 2351608., 2371355.,
      2379930., 2399824., 2408448., 2633960., 2643760., 2666048., 2675904.,
      2698360., 2708272., 2730896., 2740864., 2289721., 2298394., 2317798.,
      2326520., 2346071., 2354842., 2374540., 2383360., 1949318., 1956836.,
      1973384., 1980944., 1997618., 2005220., 2022020., 2029664., 1612975.,
      1619310., 1633030., 1639400., 1653225., 1659630., 1673560., 1680000.,
      1296670., 1302220., 1313860., 1319440., 1331170., 1336780., 1348600.,
      1354240., 1544604., 1551336., 1565232., 1572000., 1586004., 1592808.,
      1606920., 1613760., 1788290., 1796228., 1812356., 1820336., 1836590.,
      1844612., 1860992., 1869056., 2027536., 2036704., 2055040., 2064256.,
      2082736., 2092000., 2110624., 2119936., 1755866., 1763972., 1779932.,
      1788080., 1804166., 1812356., 1828568., 1836800., 1489020., 1496040.,
      1509648., 1516704., 1530420., 1537512., 1551336., 1558464., 1227190.,
      1233100., 1244380., 1250320., 1261690., 1267660., 1279120., 1285120.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6506.,  6716.,  7064.,  7280.,  7646.,  7868.,  8252.,  8480.,  7010.,
      7244.,  7616.,  7856.,  8246.,  8492.,  8900.,  9152.,  7514.,  7772.,
      8168.,  8432.,  8846.,  9116.,  9548.,  9824.,  8018.,  8300.,  8720.,
      9008.,  9446.,  9740.,  10196., 10496., 8522.,  8828.,  9272.,  9584.,
      10046., 10364., 10844., 11168., 9026.,  9356.,  9824.,  10160., 10646.,
      10988., 11492., 11840., 9530.,  9884.,  10376., 10736., 11246., 11612.,
      12140., 12512., 10538., 10940., 11480., 11888., 12446., 12860., 13436.,
      13856., 11042., 11468., 12032., 12464., 13046., 13484., 14084., 14528.,
      11546., 11996., 12584., 13040., 13646., 14108., 14732., 15200., 12050.,
      12524., 13136., 13616., 14246., 14732., 15380., 15872., 12554., 13052.,
      13688., 14192., 14846., 15356., 16028., 16544., 13058., 13580., 14240.,
      14768., 15446., 15980., 16676., 17216., 13562., 14108., 14792., 15344.,
      16046., 16604., 17324., 17888., 14570., 15164., 15896., 16496., 17246.,
      17852., 18620., 19232., 15074., 15692., 16448., 17072., 17846., 18476.,
      19268., 19904., 15578., 16220., 17000., 17648., 18446., 19100., 19916.,
      20576., 16082., 16748., 17552., 18224., 19046., 19724., 20564., 21248.,
      16586., 17276., 18104., 18800., 19646., 20348., 21212., 21920., 17090.,
      17804., 18656., 19376., 20246., 20972., 21860., 22592., 17594., 18332.,
      19208., 19952., 20846., 21596., 22508., 23264., 18602., 19388., 20312.,
      21104., 22046., 22844., 23804., 24608., 19106., 19916., 20864., 21680.,
      22646., 23468., 24452., 25280., 19610., 20444., 21416., 22256., 23246.,
      24092., 25100., 25952., 20114., 20972., 21968., 22832., 23846., 24716.,
      25748., 26624., 20618., 21500., 22520., 23408., 24446., 25340., 26396.,
      27296., 21122., 22028., 23072., 23984., 25046., 25964., 27044., 27968.,
      21626., 22556., 23624., 24560., 25646., 26588., 27692., 28640., 22634.,
      23612., 24728., 25712., 26846., 27836., 28988., 29984., 23138., 24140.,
      25280., 26288., 27446., 28460., 29636., 30656., 23642., 24668., 25832.,
      26864., 28046., 29084., 30284., 31328., 24146., 25196., 26384., 27440.,
      28646., 29708., 30932., 32000., 24650., 25724., 26936., 28016., 29246.,
      30332., 31580., 32672., 25154., 26252., 27488., 28592., 29846., 30956.,
      32228., 33344., 25658., 26780., 28040., 29168., 30446., 31580., 32876.,
      34016., 26666., 27836., 29144., 30320., 31646., 32828., 34172., 35360.,
      27170., 28364., 29696., 30896., 32246., 33452., 34820., 36032., 27674.,
      28892., 30248., 31472., 32846., 34076., 35468., 36704., 28178., 29420.,
      30800., 32048., 33446., 34700., 36116., 37376., 28682., 29948., 31352.,
      32624., 34046., 35324., 36764., 38048., 29186., 30476., 31904., 33200.,
      34646., 35948., 37412., 38720., 29690., 31004., 32456., 33776., 35246.,
      36572., 38060., 39392., 30698., 32060., 33560., 34928., 36446., 37820.,
      39356., 40736., 31202., 32588., 34112., 35504., 37046., 38444., 40004.,
      41408., 31706., 33116., 34664., 36080., 37646., 39068., 40652., 42080.,
      32210., 33644., 35216., 36656., 38246., 39692., 41300., 42752., 32714.,
      34172., 35768., 37232., 38846., 40316., 41948., 43424., 33218., 34700.,
      36320., 37808., 39446., 40940., 42596., 44096., 33722., 35228., 36872.,
      38384., 40046., 41564., 43244., 44768.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2458190., 2460860., 2463530., 2466200., 2492540., 2495240., 2497940.,
      2500640., 2527130., 2529860., 2532590., 2535320., 2561960., 2564720.,
      2567480., 2570240., 2982252., 2985528., 2988804., 2992080., 3023472.,
      3026784., 3030096., 3033408., 3064980., 3068328., 3071676., 3075024.,
      3106776., 3110160., 3113544., 3116928., 3516226., 3520132., 3524038.,
      3527944., 3564316., 3568264., 3572212., 3576160., 3612742., 3616732.,
      3620722., 3624712., 3661504., 3665536., 3669568., 3673600., 4059728.,
      4064288., 4068848., 4073408., 4114688., 4119296., 4123904., 4128512.,
      4170032., 4174688., 4179344., 4184000., 4225760., 4230464., 4235168.,
      4239872., 3580234., 3584308., 3588382., 3592456., 3628324., 3632440.,
      3636556., 3640672., 3676750., 3680908., 3685066., 3689224., 3725512.,
      3729712., 3733912., 3738112., 3091980., 3095544., 3099108., 3102672.,
      3133200., 3136800., 3140400., 3144000., 3174708., 3178344., 3181980.,
      3185616., 3216504., 3220176., 3223848., 3227520., 2595350., 2598380.,
      2601410., 2604440., 2629700., 2632760., 2635820., 2638880., 2664290.,
      2667380., 2670470., 2673560., 2699120., 2702240., 2705360., 2708480.,
      3227595., 3231270., 3234945., 3238620., 3267670., 3271380., 3275090.,
      3278800., 3308025., 3311770., 3315515., 3319260., 3348660., 3352440.,
      3356220., 3360000., 3900190., 3904684., 3909178., 3913672., 3948280.,
      3952816., 3957352., 3961888., 3996706., 4001284., 4005862., 4010440.,
      4045468., 4050088., 4054708., 4059328., 4580765., 4586106., 4591447.,
      4596788., 4636870., 4642260., 4647650., 4653040., 4693367., 4698806.,
      4704245., 4709684., 4750256., 4755744., 4761232., 4766720., 5268872.,
      5275088., 5281304., 5287520., 5332992., 5339264., 5345536., 5351808.,
      5397560., 5403888., 5410216., 5416544., 5462576., 5468960., 5475344.,
      5481728., 4630353., 4635890., 4641427., 4646964., 4686458., 4692044.,
      4697630., 4703216., 4742955., 4748590., 4754225., 4759860., 4799844.,
      4805528., 4811212., 4816896., 3985198., 3990028., 3994858., 3999688.,
      4033288., 4038160., 4043032., 4047904., 4081714., 4086628., 4091542.,
      4096456., 4130476., 4135432., 4140388., 4145344., 3333855., 3337950.,
      3342045., 3346140., 3373930., 3378060., 3382190., 3386320., 3414285.,
      3418450., 3422615., 3426780., 3454920., 3459120., 3463320., 3467520.,
      4045160., 4050000., 4054840., 4059680., 4090960., 4095840., 4100720.,
      4105600., 4137080., 4142000., 4146920., 4151840., 4183520., 4188480.,
      4193440., 4198400., 4872848., 4878752., 4884656., 4890560., 4927808.,
      4933760., 4939712., 4945664., 4983152., 4989152., 4995152., 5001152.,
      5038880., 5044928., 5050976., 5057024., 5705560., 5712560., 5719560.,
      5726560., 5769680., 5776736., 5783792., 5790848., 5834248., 5841360.,
      5848472., 5855584., 5899264., 5906432., 5913600., 5920768., 6542784.,
      6550912., 6559040., 6567168., 6616064., 6624256., 6632448., 6640640.,
      6689856., 6698112., 6706368., 6714624., 6764160., 6772480., 6780800.,
      6789120., 5733560., 5740784., 5748008., 5755232., 5797680., 5804960.,
      5812240., 5819520., 5862248., 5869584., 5876920., 5884256., 5927264.,
      5934656., 5942048., 5949440., 4920848., 4927136., 4933424., 4939712.,
      4975808., 4982144., 4988480., 4994816., 5031152., 5037536., 5043920.,
      5050304., 5086880., 5093312., 5099744., 5106176., 4105160., 4110480.,
      4115800., 4121120., 4150960., 4156320., 4161680., 4167040., 4197080.,
      4202480., 4207880., 4213280., 4243520., 4248960., 4254400., 4259840.,
      4890405., 4896570., 4902735., 4908900., 4941930., 4948140., 4954350.,
      4960560., 4993815., 5000070., 5006325., 5012580., 5046060., 5052360.,
      5058660., 5064960., 5875650., 5883156., 5890662., 5898168., 5937480.,
      5945040., 5952600., 5960160., 5999742., 6007356., 6014970., 6022584.,
      6062436., 6070104., 6077772., 6085440., 6861939., 6870822., 6879705.,
      6888588., 6934074., 6943020., 6951966., 6960912., 7006713., 7015722.,
      7024731., 7033740., 7079856., 7088928., 7098000., 7107072., 7848696.,
      7858992., 7869288., 7879584., 7931136., 7941504., 7951872., 7962240.,
      8014152., 8024592., 8035032., 8045472., 8097744., 8108256., 8118768.,
      8129280., 6861183., 6870318., 6879453., 6888588., 6933318., 6942516.,
      6951714., 6960912., 7005957., 7015218., 7024479., 7033740., 7079100.,
      7088424., 7097748., 7107072., 5874354., 5882292., 5890230., 5898168.,
      5936184., 5944176., 5952168., 5960160., 5998446., 6006492., 6014538.,
      6022584., 6061140., 6069240., 6077340., 6085440., 4888785., 4895490.,
      4902195., 4908900., 4940310., 4947060., 4953810., 4960560., 4992195.,
      4998990., 5005785., 5012580., 5044440., 5051280., 5058120., 5064960.,
      4102760., 4108880., 4115000., 4121120., 4148560., 4154720., 4160880.,
      4167040., 4194680., 4200880., 4207080., 4213280., 4241120., 4247360.,
      4253600., 4259840., 4917392., 4924832., 4932272., 4939712., 4972352.,
      4979840., 4987328., 4994816., 5027696., 5035232., 5042768., 5050304.,
      5083424., 5091008., 5098592., 5106176., 5728856., 5737648., 5746440.,
      5755232., 5792976., 5801824., 5810672., 5819520., 5857544., 5866448.,
      5875352., 5884256., 5922560., 5931520., 5940480., 5949440., 6536640.,
      6546816., 6556992., 6567168., 6609920., 6620160., 6630400., 6640640.,
      6683712., 6694016., 6704320., 6714624., 6758016., 6768384., 6778752.,
      6789120., 5699512., 5708528., 5717544., 5726560., 5763632., 5772704.,
      5781776., 5790848., 5828200., 5837328., 5846456., 5855584., 5893216.,
      5902400., 5911584., 5920768., 4867088., 4874912., 4882736., 4890560.,
      4922048., 4929920., 4937792., 4945664., 4977392., 4985312., 4993232.,
      5001152., 5033120., 5041088., 5049056., 5057024., 4039880., 4046480.,
      4053080., 4059680., 4085680., 4092320., 4098960., 4105600., 4131800.,
      4138480., 4145160., 4151840., 4178240., 4184960., 4191680., 4198400.,
      3328395., 3334310., 3340225., 3346140., 3368470., 3374420., 3380370.,
      3386320., 3408825., 3414810., 3420795., 3426780., 3449460., 3455480.,
      3461500., 3467520., 3978142., 3985324., 3992506., 3999688., 4026232.,
      4033456., 4040680., 4047904., 4074658., 4081924., 4089190., 4096456.,
      4123420., 4130728., 4138036., 4145344., 4621533., 4630010., 4638487.,
      4646964., 4677638., 4686164., 4694690., 4703216., 4734135., 4742710.,
      4751285., 4759860., 4791024., 4799648., 4808272., 4816896., 5258120.,
      5267920., 5277720., 5287520., 5322240., 5332096., 5341952., 5351808.,
      5386808., 5396720., 5406632., 5416544., 5451824., 5461792., 5471760.,
      5481728., 4570769., 4579442., 4588115., 4596788., 4626874., 4635596.,
      4644318., 4653040., 4683371., 4692142., 4700913., 4709684., 4740260.,
      4749080., 4757900., 4766720., 3891118., 3898636., 3906154., 3913672.,
      3939208., 3946768., 3954328., 3961888., 3987634., 3995236., 4002838.,
      4010440., 4036396., 4044040., 4051684., 4059328., 3219615., 3225950.,
      3232285., 3238620., 3259690., 3266060., 3272430., 3278800., 3300045.,
      3306450., 3312855., 3319260., 3340680., 3347120., 3353560., 3360000.,
      2587790., 2593340., 2598890., 2604440., 2622140., 2627720., 2633300.,
      2638880., 2656730., 2662340., 2667950., 2673560., 2691560., 2697200.,
      2702840., 2708480., 3082476., 3089208., 3095940., 3102672., 3123696.,
      3130464., 3137232., 3144000., 3165204., 3172008., 3178812., 3185616.,
      3207000., 3213840., 3220680., 3227520., 3568642., 3576580., 3584518.,
      3592456., 3616732., 3624712., 3632692., 3640672., 3665158., 3673180.,
      3681202., 3689224., 3713920., 3721984., 3730048., 3738112., 4045904.,
      4055072., 4064240., 4073408., 4100864., 4110080., 4119296., 4128512.,
      4156208., 4165472., 4174736., 4184000., 4211936., 4221248., 4230560.,
      4239872., 3503626., 3511732., 3519838., 3527944., 3551716., 3559864.,
      3568012., 3576160., 3600142., 3608332., 3616522., 3624712., 3648904.,
      3657136., 3665368., 3673600., 2971020., 2978040., 2985060., 2992080.,
      3012240., 3019296., 3026352., 3033408., 3053748., 3060840., 3067932.,
      3075024., 3095544., 3102672., 3109800., 3116928., 2448470., 2454380.,
      2460290., 2466200., 2482820., 2488760., 2494700., 2500640., 2517410.,
      2523380., 2529350., 2535320., 2552240., 2558240., 2564240., 2570240.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      12802., 13012., 13222., 13432., 13912., 14128., 14344., 14560., 15070.,
      15292., 15514., 15736., 16276., 16504., 16732., 16960., 13786., 14020.,
      14254., 14488., 14992., 15232., 15472., 15712., 16246., 16492., 16738.,
      16984., 17548., 17800., 18052., 18304., 14770., 15028., 15286., 15544.,
      16072., 16336., 16600., 16864., 17422., 17692., 17962., 18232., 18820.,
      19096., 19372., 19648., 15754., 16036., 16318., 16600., 17152., 17440.,
      17728., 18016., 18598., 18892., 19186., 19480., 20092., 20392., 20692.,
      20992., 16738., 17044., 17350., 17656., 18232., 18544., 18856., 19168.,
      19774., 20092., 20410., 20728., 21364., 21688., 22012., 22336., 17722.,
      18052., 18382., 18712., 19312., 19648., 19984., 20320., 20950., 21292.,
      21634., 21976., 22636., 22984., 23332., 23680., 18706., 19060., 19414.,
      19768., 20392., 20752., 21112., 21472., 22126., 22492., 22858., 23224.,
      23908., 24280., 24652., 25024., 20674., 21076., 21478., 21880., 22552.,
      22960., 23368., 23776., 24478., 24892., 25306., 25720., 26452., 26872.,
      27292., 27712., 21658., 22084., 22510., 22936., 23632., 24064., 24496.,
      24928., 25654., 26092., 26530., 26968., 27724., 28168., 28612., 29056.,
      22642., 23092., 23542., 23992., 24712., 25168., 25624., 26080., 26830.,
      27292., 27754., 28216., 28996., 29464., 29932., 30400., 23626., 24100.,
      24574., 25048., 25792., 26272., 26752., 27232., 28006., 28492., 28978.,
      29464., 30268., 30760., 31252., 31744., 24610., 25108., 25606., 26104.,
      26872., 27376., 27880., 28384., 29182., 29692., 30202., 30712., 31540.,
      32056., 32572., 33088., 25594., 26116., 26638., 27160., 27952., 28480.,
      29008., 29536., 30358., 30892., 31426., 31960., 32812., 33352., 33892.,
      34432., 26578., 27124., 27670., 28216., 29032., 29584., 30136., 30688.,
      31534., 32092., 32650., 33208., 34084., 34648., 35212., 35776., 28546.,
      29140., 29734., 30328., 31192., 31792., 32392., 32992., 33886., 34492.,
      35098., 35704., 36628., 37240., 37852., 38464., 29530., 30148., 30766.,
      31384., 32272., 32896., 33520., 34144., 35062., 35692., 36322., 36952.,
      37900., 38536., 39172., 39808., 30514., 31156., 31798., 32440., 33352.,
      34000., 34648., 35296., 36238., 36892., 37546., 38200., 39172., 39832.,
      40492., 41152., 31498., 32164., 32830., 33496., 34432., 35104., 35776.,
      36448., 37414., 38092., 38770., 39448., 40444., 41128., 41812., 42496.,
      32482., 33172., 33862., 34552., 35512., 36208., 36904., 37600., 38590.,
      39292., 39994., 40696., 41716., 42424., 43132., 43840., 33466., 34180.,
      34894., 35608., 36592., 37312., 38032., 38752., 39766., 40492., 41218.,
      41944., 42988., 43720., 44452., 45184., 34450., 35188., 35926., 36664.,
      37672., 38416., 39160., 39904., 40942., 41692., 42442., 43192., 44260.,
      45016., 45772., 46528., 36418., 37204., 37990., 38776., 39832., 40624.,
      41416., 42208., 43294., 44092., 44890., 45688., 46804., 47608., 48412.,
      49216., 37402., 38212., 39022., 39832., 40912., 41728., 42544., 43360.,
      44470., 45292., 46114., 46936., 48076., 48904., 49732., 50560., 38386.,
      39220., 40054., 40888., 41992., 42832., 43672., 44512., 45646., 46492.,
      47338., 48184., 49348., 50200., 51052., 51904., 39370., 40228., 41086.,
      41944., 43072., 43936., 44800., 45664., 46822., 47692., 48562., 49432.,
      50620., 51496., 52372., 53248., 40354., 41236., 42118., 43000., 44152.,
      45040., 45928., 46816., 47998., 48892., 49786., 50680., 51892., 52792.,
      53692., 54592., 41338., 42244., 43150., 44056., 45232., 46144., 47056.,
      47968., 49174., 50092., 51010., 51928., 53164., 54088., 55012., 55936.,
      42322., 43252., 44182., 45112., 46312., 47248., 48184., 49120., 50350.,
      51292., 52234., 53176., 54436., 55384., 56332., 57280., 44290., 45268.,
      46246., 47224., 48472., 49456., 50440., 51424., 52702., 53692., 54682.,
      55672., 56980., 57976., 58972., 59968., 45274., 46276., 47278., 48280.,
      49552., 50560., 51568., 52576., 53878., 54892., 55906., 56920., 58252.,
      59272., 60292., 61312., 46258., 47284., 48310., 49336., 50632., 51664.,
      52696., 53728., 55054., 56092., 57130., 58168., 59524., 60568., 61612.,
      62656., 47242., 48292., 49342., 50392., 51712., 52768., 53824., 54880.,
      56230., 57292., 58354., 59416., 60796., 61864., 62932., 64000., 48226.,
      49300., 50374., 51448., 52792., 53872., 54952., 56032., 57406., 58492.,
      59578., 60664., 62068., 63160., 64252., 65344., 49210., 50308., 51406.,
      52504., 53872., 54976., 56080., 57184., 58582., 59692., 60802., 61912.,
      63340., 64456., 65572., 66688., 50194., 51316., 52438., 53560., 54952.,
      56080., 57208., 58336., 59758., 60892., 62026., 63160., 64612., 65752.,
      66892., 68032., 52162., 53332., 54502., 55672., 57112., 58288., 59464.,
      60640., 62110., 63292., 64474., 65656., 67156., 68344., 69532., 70720.,
      53146., 54340., 55534., 56728., 58192., 59392., 60592., 61792., 63286.,
      64492., 65698., 66904., 68428., 69640., 70852., 72064., 54130., 55348.,
      56566., 57784., 59272., 60496., 61720., 62944., 64462., 65692., 66922.,
      68152., 69700., 70936., 72172., 73408., 55114., 56356., 57598., 58840.,
      60352., 61600., 62848., 64096., 65638., 66892., 68146., 69400., 70972.,
      72232., 73492., 74752., 56098., 57364., 58630., 59896., 61432., 62704.,
      63976., 65248., 66814., 68092., 69370., 70648., 72244., 73528., 74812.,
      76096., 57082., 58372., 59662., 60952., 62512., 63808., 65104., 66400.,
      67990., 69292., 70594., 71896., 73516., 74824., 76132., 77440., 58066.,
      59380., 60694., 62008., 63592., 64912., 66232., 67552., 69166., 70492.,
      71818., 73144., 74788., 76120., 77452., 78784., 60034., 61396., 62758.,
      64120., 65752., 67120., 68488., 69856., 71518., 72892., 74266., 75640.,
      77332., 78712., 80092., 81472., 61018., 62404., 63790., 65176., 66832.,
      68224., 69616., 71008., 72694., 74092., 75490., 76888., 78604., 80008.,
      81412., 82816., 62002., 63412., 64822., 66232., 67912., 69328., 70744.,
      72160., 73870., 75292., 76714., 78136., 79876., 81304., 82732., 84160.,
      62986., 64420., 65854., 67288., 68992., 70432., 71872., 73312., 75046.,
      76492., 77938., 79384., 81148., 82600., 84052., 85504., 63970., 65428.,
      66886., 68344., 70072., 71536., 73000., 74464., 76222., 77692., 79162.,
      80632., 82420., 83896., 85372., 86848., 64954., 66436., 67918., 69400.,
      71152., 72640., 74128., 75616., 77398., 78892., 80386., 81880., 83692.,
      85192., 86692., 88192., 65938., 67444., 68950., 70456., 72232., 73744.,
      75256., 76768., 78574., 80092., 81610., 83128., 84964., 86488., 88012.,
      89536.};
  const std::array<int, 4> in_shape = {{1, 9, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      61026.,  71862.,  82872.,  94050.,  84168.,  74130.,  63942.,
      79702.,  93541.,  107520., 121632., 108528., 95305.,  81970.,
      99512.,  116480., 133536., 150672., 134112., 117488., 100808.,
      119970., 140112., 160272., 180441., 160272., 140112., 119970.,
      100808., 117488., 134112., 150672., 133536., 116480., 99512.,
      81970.,  95305.,  108528., 121632., 107520., 93541.,  79702.,
      63942.,  74130.,  84168.,  94050.,  82872.,  71862.,  61026.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      663.,  708.,  753.,  798.,  843.,  888.,  933.,  1068., 1113., 1158.,
      1203., 1248., 1293., 1338., 1473., 1518., 1563., 1608., 1653., 1698.,
      1743., 1878., 1923., 1968., 2013., 2058., 2103., 2148., 2283., 2328.,
      2373., 2418., 2463., 2508., 2553., 2688., 2733., 2778., 2823., 2868.,
      2913., 2958., 3093., 3138., 3183., 3228., 3273., 3318., 3363.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      121116., 122052., 142611., 143724., 164448., 165744., 186615., 188100.,
      166992., 168336., 147063., 148260., 126840., 127884., 158123., 159404.,
      185563., 187082., 213276., 215040., 241248., 243264., 215236., 217056.,
      188993., 190610., 162533., 163940., 197344., 199024., 230972., 232960.,
      264768., 267072., 298716., 301344., 265856., 268224., 232876., 234976.,
      199792., 201616., 237807., 239940., 277704., 280224., 317628., 320544.,
      357561., 360882., 317556., 320544., 277578., 280224., 237645., 239940.,
      199504., 201616., 232484., 234976., 265344., 268224., 298068., 301344.,
      264128., 267072., 230356., 232960., 196768., 199024., 161903., 163940.,
      188209., 190610., 214284., 217056., 240114., 243264., 212212., 215040.,
      184583., 187082., 157241., 159404., 125976., 127884., 146013., 148260.,
      165744., 168336., 185157., 188100., 163104., 165744., 141393., 143724.,
      120036., 122052.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1227., 1326., 1308., 1416., 1389., 1506., 1470., 1596., 1551., 1686.,
      1632., 1776., 1713., 1866., 1956., 2136., 2037., 2226., 2118., 2316.,
      2199., 2406., 2280., 2496., 2361., 2586., 2442., 2676., 2685., 2946.,
      2766., 3036., 2847., 3126., 2928., 3216., 3009., 3306., 3090., 3396.,
      3171., 3486., 3414., 3756., 3495., 3846., 3576., 3936., 3657., 4026.,
      3738., 4116., 3819., 4206., 3900., 4296., 4143., 4566., 4224., 4656.,
      4305., 4746., 4386., 4836., 4467., 4926., 4548., 5016., 4629., 5106.,
      4872., 5376., 4953., 5466., 5034., 5556., 5115., 5646., 5196., 5736.,
      5277., 5826., 5358., 5916., 5601., 6186., 5682., 6276., 5763., 6366.,
      5844., 6456., 5925., 6546., 6006., 6636., 6087., 6726.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      241296., 242232., 243168., 244104., 284109., 285222., 286335., 287448.,
      327600., 328896., 330192., 331488., 371745., 373230., 374715., 376200.,
      332640., 333984., 335328., 336672., 292929., 294126., 295323., 296520.,
      252636., 253680., 254724., 255768., 314965., 316246., 317527., 318808.,
      369607., 371126., 372645., 374164., 424788., 426552., 428316., 430080.,
      480480., 482496., 484512., 486528., 428652., 430472., 432292., 434112.,
      376369., 377986., 379603., 381220., 323659., 325066., 326473., 327880.,
      393008., 394688., 396368., 398048., 459956., 461944., 463932., 465920.,
      527232., 529536., 531840., 534144., 594804., 597432., 600060., 602688.,
      529344., 531712., 534080., 536448., 463652., 465752., 467852., 469952.,
      397760., 399584., 401408., 403232., 473481., 475614., 477747., 479880.,
      552888., 555408., 557928., 560448., 632340., 635256., 638172., 641088.,
      711801., 715122., 718443., 721764., 632124., 635112., 638100., 641088.,
      552510., 555156., 557802., 560448., 472995., 475290., 477585., 479880.,
      396896., 399008., 401120., 403232., 462476., 464968., 467460., 469952.,
      527808., 530688., 533568., 536448., 592860., 596136., 599412., 602688.,
      525312., 528256., 531200., 534144., 458108., 460712., 463316., 465920.,
      391280., 393536., 395792., 398048., 321769., 323806., 325843., 327880.,
      374017., 376418., 378819., 381220., 425796., 428568., 431340., 434112.,
      477078., 480228., 483378., 486528., 421596., 424424., 427252., 430080.,
      366667., 369166., 371665., 374164., 312319., 314482., 316645., 318808.,
      250044., 251952., 253860., 255768., 289779., 292026., 294273., 296520.,
      328896., 331488., 334080., 336672., 367371., 370314., 373257., 376200.,
      323568., 326208., 328848., 331488., 280455., 282786., 285117., 287448.,
      238056., 240072., 242088., 244104.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2355.,  2454.,  2553.,  2652.,  2508.,  2616.,  2724.,  2832.,  2661.,
      2778.,  2895.,  3012.,  2814.,  2940.,  3066.,  3192.,  2967.,  3102.,
      3237.,  3372.,  3120.,  3264.,  3408.,  3552.,  3273.,  3426.,  3579.,
      3732.,  3732.,  3912.,  4092.,  4272.,  3885.,  4074.,  4263.,  4452.,
      4038.,  4236.,  4434.,  4632.,  4191.,  4398.,  4605.,  4812.,  4344.,
      4560.,  4776.,  4992.,  4497.,  4722.,  4947.,  5172.,  4650.,  4884.,
      5118.,  5352.,  5109.,  5370.,  5631.,  5892.,  5262.,  5532.,  5802.,
      6072.,  5415.,  5694.,  5973.,  6252.,  5568.,  5856.,  6144.,  6432.,
      5721.,  6018.,  6315.,  6612.,  5874.,  6180.,  6486.,  6792.,  6027.,
      6342.,  6657.,  6972.,  6486.,  6828.,  7170.,  7512.,  6639.,  6990.,
      7341.,  7692.,  6792.,  7152.,  7512.,  7872.,  6945.,  7314.,  7683.,
      8052.,  7098.,  7476.,  7854.,  8232.,  7251.,  7638.,  8025.,  8412.,
      7404.,  7800.,  8196.,  8592.,  7863.,  8286.,  8709.,  9132.,  8016.,
      8448.,  8880.,  9312.,  8169.,  8610.,  9051.,  9492.,  8322.,  8772.,
      9222.,  9672.,  8475.,  8934.,  9393.,  9852.,  8628.,  9096.,  9564.,
      10032., 8781.,  9258.,  9735.,  10212., 9240.,  9744.,  10248., 10752.,
      9393.,  9906.,  10419., 10932., 9546.,  10068., 10590., 11112., 9699.,
      10230., 10761., 11292., 9852.,  10392., 10932., 11472., 10005., 10554.,
      11103., 11652., 10158., 10716., 11274., 11832., 10617., 11202., 11787.,
      12372., 10770., 11364., 11958., 12552., 10923., 11526., 12129., 12732.,
      11076., 11688., 12300., 12912., 11229., 11850., 12471., 13092., 11382.,
      12012., 12642., 13272., 11535., 12174., 12813., 13452.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      238236., 244104., 280602., 287448., 323664., 331488., 367398., 376200.,
      328848., 336672., 289674., 296520., 249900., 255768., 311962., 318808.,
      366177., 374164., 420952., 430080., 476259., 486528., 424984., 434112.,
      373233., 381220., 321034., 327880., 390224., 398048., 456792., 465920.,
      523712., 534144., 590952., 602688., 526016., 536448., 460824., 469952.,
      395408., 403232., 471078., 479880., 550179., 560448., 629352., 641088.,
      708561., 721764., 629352., 641088., 550179., 560448., 471078., 479880.,
      395408., 403232., 460824., 469952., 526016., 536448., 590952., 602688.,
      523712., 534144., 456792., 465920., 390224., 398048., 321034., 327880.,
      373233., 381220., 424984., 434112., 476259., 486528., 420952., 430080.,
      366177., 374164., 311962., 318808., 249900., 255768., 289674., 296520.,
      328848., 336672., 367398., 376200., 323664., 331488., 280602., 287448.,
      238236., 244104.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2373.,  2652.,  2535.,  2832.,  2697.,  3012.,  2859.,  3192.,  3021.,
      3372.,  3183.,  3552.,  3345.,  3732.,  3831.,  4272.,  3993.,  4452.,
      4155.,  4632.,  4317.,  4812.,  4479.,  4992.,  4641.,  5172.,  4803.,
      5352.,  5289.,  5892.,  5451.,  6072.,  5613.,  6252.,  5775.,  6432.,
      5937.,  6612.,  6099.,  6792.,  6261.,  6972.,  6747.,  7512.,  6909.,
      7692.,  7071.,  7872.,  7233.,  8052.,  7395.,  8232.,  7557.,  8412.,
      7719.,  8592.,  8205.,  9132.,  8367.,  9312.,  8529.,  9492.,  8691.,
      9672.,  8853.,  9852.,  9015.,  10032., 9177.,  10212., 9663.,  10752.,
      9825.,  10932., 9987.,  11112., 10149., 11292., 10311., 11472., 10473.,
      11652., 10635., 11832., 11121., 12372., 11283., 12552., 11445., 12732.,
      11607., 12912., 11769., 13092., 11931., 13272., 12093., 13452.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      474636.,  476472.,  486336.,  488208.,  559020.,  561204.,  572670.,
      574896.,  644784.,  647328.,  660384.,  662976.,  731880.,  734796.,
      749430.,  752400.,  655056.,  657696.,  670656.,  673344.,  576996.,
      579348.,  590646.,  593040.,  497748.,  499800.,  509448.,  511536.,
      621404.,  623924.,  635054.,  637616.,  729365.,  732354.,  745290.,
      748328.,  838432.,  841904.,  856632.,  860160.,  948549.,  952518.,
      969024.,  973056.,  846384.,  849968.,  864584.,  868224.,  743281.,
      746466.,  759206.,  762440.,  639296.,  642068.,  652946.,  655760.,
      777136.,  780448.,  792736.,  796096.,  909664.,  913584.,  927864.,
      931840.,  1042880., 1047424., 1063680., 1068288., 1176720., 1181904.,
      1200120., 1205376., 1047360., 1052032., 1068160., 1072896., 917504.,
      921648.,  935704.,  939904.,  787216.,  790816.,  802816.,  806464.,
      937944.,  942156.,  955494.,  959760.,  1095381., 1100358., 1115856.,
      1120896., 1252944., 1258704., 1276344., 1282176., 1410561., 1417122.,
      1436886., 1443528., 1252800., 1258704., 1276200., 1282176., 1095129.,
      1100358., 1115604., 1120896., 937620.,  942156.,  955170.,  959760.,
      786640.,  790816.,  802240.,  806464.,  916720.,  921648.,  934920.,
      939904.,  1046336., 1052032., 1067136., 1072896., 1175424., 1181904.,
      1198824., 1205376., 1041600., 1047424., 1062400., 1068288., 908432.,
      913584.,  926632.,  931840.,  775984.,  780448.,  791584.,  796096.,
      638036.,  642068.,  651686.,  655760.,  741713.,  746466.,  757638.,
      762440.,  844480.,  849968.,  862680.,  868224.,  946281.,  952518.,
      966756.,  973056.,  836304.,  841904.,  854504.,  860160.,  727405.,
      732354.,  743330.,  748328.,  619640.,  623924.,  633290.,  637616.,
      496020.,  499800.,  507720.,  511536.,  574896.,  579348.,  588546.,
      593040.,  652560.,  657696.,  668160.,  673344.,  728964.,  734796.,
      746514.,  752400.,  642096.,  647328.,  657696.,  662976.,  556584.,
      561204.,  570234.,  574896.,  472476.,  476472.,  484176.,  488208.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4557.,  4746.,  5106.,  5304.,  4863.,  5070.,  5448.,  5664.,  5169.,
      5394.,  5790.,  6024.,  5475.,  5718.,  6132.,  6384.,  5781.,  6042.,
      6474.,  6744.,  6087.,  6366.,  6816.,  7104.,  6393.,  6690.,  7158.,
      7464.,  7311.,  7662.,  8184.,  8544.,  7617.,  7986.,  8526.,  8904.,
      7923.,  8310.,  8868.,  9264.,  8229.,  8634.,  9210.,  9624.,  8535.,
      8958.,  9552.,  9984.,  8841.,  9282.,  9894.,  10344., 9147.,  9606.,
      10236., 10704., 10065., 10578., 11262., 11784., 10371., 10902., 11604.,
      12144., 10677., 11226., 11946., 12504., 10983., 11550., 12288., 12864.,
      11289., 11874., 12630., 13224., 11595., 12198., 12972., 13584., 11901.,
      12522., 13314., 13944., 12819., 13494., 14340., 15024., 13125., 13818.,
      14682., 15384., 13431., 14142., 15024., 15744., 13737., 14466., 15366.,
      16104., 14043., 14790., 15708., 16464., 14349., 15114., 16050., 16824.,
      14655., 15438., 16392., 17184., 15573., 16410., 17418., 18264., 15879.,
      16734., 17760., 18624., 16185., 17058., 18102., 18984., 16491., 17382.,
      18444., 19344., 16797., 17706., 18786., 19704., 17103., 18030., 19128.,
      20064., 17409., 18354., 19470., 20424., 18327., 19326., 20496., 21504.,
      18633., 19650., 20838., 21864., 18939., 19974., 21180., 22224., 19245.,
      20298., 21522., 22584., 19551., 20622., 21864., 22944., 19857., 20946.,
      22206., 23304., 20163., 21270., 22548., 23664., 21081., 22242., 23574.,
      24744., 21387., 22566., 23916., 25104., 21693., 22890., 24258., 25464.,
      21999., 23214., 24600., 25824., 22305., 23538., 24942., 26184., 22611.,
      23862., 25284., 26544., 22917., 24186., 25626., 26904.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      947436.,  949272.,  951108.,  952944.,  970800.,  972672.,  974544.,
      976416.,  1115856., 1118040., 1120224., 1122408., 1143114., 1145340.,
      1147566., 1149792., 1287024., 1289568., 1292112., 1294656., 1318176.,
      1320768., 1323360., 1325952., 1460844., 1463760., 1466676., 1469592.,
      1495890., 1498860., 1501830., 1504800., 1307472., 1310112., 1312752.,
      1315392., 1338624., 1341312., 1344000., 1346688., 1151640., 1153992.,
      1156344., 1158696., 1178898., 1181292., 1183686., 1186080., 993444.,
      995496.,  997548.,  999600.,  1016808., 1018896., 1020984., 1023072.,
      1240288., 1242808., 1245328., 1247848., 1267546., 1270108., 1272670.,
      1275232., 1455741., 1458730., 1461719., 1464708., 1487542., 1490580.,
      1493618., 1496656., 1673392., 1676864., 1680336., 1683808., 1709736.,
      1713264., 1716792., 1720320., 1893129., 1897098., 1901067., 1905036.,
      1934016., 1938048., 1942080., 1946112., 1689184., 1692768., 1696352.,
      1699936., 1725528., 1729168., 1732808., 1736448., 1483377., 1486562.,
      1489747., 1492932., 1515178., 1518412., 1521646., 1524880., 1275820.,
      1278592., 1281364., 1284136., 1303078., 1305892., 1308706., 1311520.,
      1550960., 1554272., 1557584., 1560896., 1582112., 1585472., 1588832.,
      1592192., 1815408., 1819328., 1823248., 1827168., 1851752., 1855728.,
      1859704., 1863680., 2081216., 2085760., 2090304., 2094848., 2122752.,
      2127360., 2131968., 2136576., 2348256., 2353440., 2358624., 2363808.,
      2394984., 2400240., 2405496., 2410752., 2090048., 2094720., 2099392.,
      2104064., 2131584., 2136320., 2141056., 2145792., 1830864., 1835008.,
      1839152., 1843296., 1867208., 1871408., 1875608., 1879808., 1570832.,
      1574432., 1578032., 1581632., 1601984., 1605632., 1609280., 1612928.,
      1871676., 1875888., 1880100., 1884312., 1906722., 1910988., 1915254.,
      1919520., 2185785., 2190762., 2195739., 2200716., 2226672., 2231712.,
      2236752., 2241792., 2500128., 2505888., 2511648., 2517408., 2546856.,
      2552688., 2558520., 2564352., 2814561., 2821122., 2827683., 2834244.,
      2867130., 2873772., 2880414., 2887056., 2499696., 2505600., 2511504.,
      2517408., 2546424., 2552400., 2558376., 2564352., 2185029., 2190258.,
      2195487., 2200716., 2225916., 2231208., 2236500., 2241792., 1870704.,
      1875240., 1879776., 1884312., 1905750., 1910340., 1914930., 1919520.,
      1569104., 1573280., 1577456., 1581632., 1600256., 1604480., 1608704.,
      1612928., 1828512., 1833440., 1838368., 1843296., 1864856., 1869840.,
      1874824., 1879808., 2086976., 2092672., 2098368., 2104064., 2128512.,
      2134272., 2140032., 2145792., 2344368., 2350848., 2357328., 2363808.,
      2391096., 2397648., 2404200., 2410752., 2077376., 2083200., 2089024.,
      2094848., 2118912., 2124800., 2130688., 2136576., 1811712., 1816864.,
      1822016., 1827168., 1848056., 1853264., 1858472., 1863680., 1547504.,
      1551968., 1556432., 1560896., 1578656., 1583168., 1587680., 1592192.,
      1272040., 1276072., 1280104., 1284136., 1299298., 1303372., 1307446.,
      1311520., 1478673., 1483426., 1488179., 1492932., 1510474., 1515276.,
      1520078., 1524880., 1683472., 1688960., 1694448., 1699936., 1719816.,
      1725360., 1730904., 1736448., 1886325., 1892562., 1898799., 1905036.,
      1927212., 1933512., 1939812., 1946112., 1667008., 1672608., 1678208.,
      1683808., 1703352., 1709008., 1714664., 1720320., 1449861., 1454810.,
      1459759., 1464708., 1481662., 1486660., 1491658., 1496656., 1234996.,
      1239280., 1243564., 1247848., 1262254., 1266580., 1270906., 1275232.,
      988260.,  992040.,  995820.,  999600.,  1011624., 1015440., 1019256.,
      1023072., 1145340., 1149792., 1154244., 1158696., 1172598., 1177092.,
      1181586., 1186080., 1299984., 1305120., 1310256., 1315392., 1331136.,
      1336320., 1341504., 1346688., 1452096., 1457928., 1463760., 1469592.,
      1487142., 1493028., 1498914., 1504800., 1278960., 1284192., 1289424.,
      1294656., 1310112., 1315392., 1320672., 1325952., 1108548., 1113168.,
      1117788., 1122408., 1135806., 1140468., 1145130., 1149792., 940956.,
      944952.,  948948.,  952944.,  964320.,  968352.,  972384.,  976416.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8925.,  9114.,  9303.,  9492.,  10014., 10212., 10410., 10608., 9519.,
      9726.,  9933.,  10140., 10680., 10896., 11112., 11328., 10113., 10338.,
      10563., 10788., 11346., 11580., 11814., 12048., 10707., 10950., 11193.,
      11436., 12012., 12264., 12516., 12768., 11301., 11562., 11823., 12084.,
      12678., 12948., 13218., 13488., 11895., 12174., 12453., 12732., 13344.,
      13632., 13920., 14208., 12489., 12786., 13083., 13380., 14010., 14316.,
      14622., 14928., 14271., 14622., 14973., 15324., 16008., 16368., 16728.,
      17088., 14865., 15234., 15603., 15972., 16674., 17052., 17430., 17808.,
      15459., 15846., 16233., 16620., 17340., 17736., 18132., 18528., 16053.,
      16458., 16863., 17268., 18006., 18420., 18834., 19248., 16647., 17070.,
      17493., 17916., 18672., 19104., 19536., 19968., 17241., 17682., 18123.,
      18564., 19338., 19788., 20238., 20688., 17835., 18294., 18753., 19212.,
      20004., 20472., 20940., 21408., 19617., 20130., 20643., 21156., 22002.,
      22524., 23046., 23568., 20211., 20742., 21273., 21804., 22668., 23208.,
      23748., 24288., 20805., 21354., 21903., 22452., 23334., 23892., 24450.,
      25008., 21399., 21966., 22533., 23100., 24000., 24576., 25152., 25728.,
      21993., 22578., 23163., 23748., 24666., 25260., 25854., 26448., 22587.,
      23190., 23793., 24396., 25332., 25944., 26556., 27168., 23181., 23802.,
      24423., 25044., 25998., 26628., 27258., 27888., 24963., 25638., 26313.,
      26988., 27996., 28680., 29364., 30048., 25557., 26250., 26943., 27636.,
      28662., 29364., 30066., 30768., 26151., 26862., 27573., 28284., 29328.,
      30048., 30768., 31488., 26745., 27474., 28203., 28932., 29994., 30732.,
      31470., 32208., 27339., 28086., 28833., 29580., 30660., 31416., 32172.,
      32928., 27933., 28698., 29463., 30228., 31326., 32100., 32874., 33648.,
      28527., 29310., 30093., 30876., 31992., 32784., 33576., 34368., 30309.,
      31146., 31983., 32820., 33990., 34836., 35682., 36528., 30903., 31758.,
      32613., 33468., 34656., 35520., 36384., 37248., 31497., 32370., 33243.,
      34116., 35322., 36204., 37086., 37968., 32091., 32982., 33873., 34764.,
      35988., 36888., 37788., 38688., 32685., 33594., 34503., 35412., 36654.,
      37572., 38490., 39408., 33279., 34206., 35133., 36060., 37320., 38256.,
      39192., 40128., 33873., 34818., 35763., 36708., 37986., 38940., 39894.,
      40848., 35655., 36654., 37653., 38652., 39984., 40992., 42000., 43008.,
      36249., 37266., 38283., 39300., 40650., 41676., 42702., 43728., 36843.,
      37878., 38913., 39948., 41316., 42360., 43404., 44448., 37437., 38490.,
      39543., 40596., 41982., 43044., 44106., 45168., 38031., 39102., 40173.,
      41244., 42648., 43728., 44808., 45888., 38625., 39714., 40803., 41892.,
      43314., 44412., 45510., 46608., 39219., 40326., 41433., 42540., 43980.,
      45096., 46212., 47328., 41001., 42162., 43323., 44484., 45978., 47148.,
      48318., 49488., 41595., 42774., 43953., 45132., 46644., 47832., 49020.,
      50208., 42189., 43386., 44583., 45780., 47310., 48516., 49722., 50928.,
      42783., 43998., 45213., 46428., 47976., 49200., 50424., 51648., 43377.,
      44610., 45843., 47076., 48642., 49884., 51126., 52368., 43971., 45222.,
      46473., 47724., 49308., 50568., 51828., 53088., 44565., 45834., 47103.,
      48372., 49974., 51252., 52530., 53808.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      941316.,  952944.,  964644.,  976416.,  1108842., 1122408., 1136058.,
      1149792., 1279152., 1294656., 1310256., 1325952., 1452150., 1469592.,
      1487142., 1504800., 1299888., 1315392., 1330992., 1346688., 1145130.,
      1158696., 1172346., 1186080., 987972.,  999600.,  1011300., 1023072.,
      1234282., 1247848., 1261498., 1275232., 1448881., 1464708., 1480633.,
      1496656., 1665720., 1683808., 1702008., 1720320., 1884687., 1905036.,
      1925511., 1946112., 1681848., 1699936., 1718136., 1736448., 1477105.,
      1492932., 1508857., 1524880., 1270570., 1284136., 1297786., 1311520.,
      1545392., 1560896., 1576496., 1592192., 1809080., 1827168., 1845368.,
      1863680., 2074176., 2094848., 2115648., 2136576., 2340552., 2363808.,
      2387208., 2410752., 2083392., 2104064., 2124864., 2145792., 1825208.,
      1843296., 1861496., 1879808., 1566128., 1581632., 1597232., 1612928.,
      1866870., 1884312., 1901862., 1919520., 2180367., 2200716., 2221191.,
      2241792., 2494152., 2517408., 2540808., 2564352., 2808081., 2834244.,
      2860569., 2887056., 2494152., 2517408., 2540808., 2564352., 2180367.,
      2200716., 2221191., 2241792., 1866870., 1884312., 1901862., 1919520.,
      1566128., 1581632., 1597232., 1612928., 1825208., 1843296., 1861496.,
      1879808., 2083392., 2104064., 2124864., 2145792., 2340552., 2363808.,
      2387208., 2410752., 2074176., 2094848., 2115648., 2136576., 1809080.,
      1827168., 1845368., 1863680., 1545392., 1560896., 1576496., 1592192.,
      1270570., 1284136., 1297786., 1311520., 1477105., 1492932., 1508857.,
      1524880., 1681848., 1699936., 1718136., 1736448., 1884687., 1905036.,
      1925511., 1946112., 1665720., 1683808., 1702008., 1720320., 1448881.,
      1464708., 1480633., 1496656., 1234282., 1247848., 1261498., 1275232.,
      987972.,  999600.,  1011300., 1023072., 1145130., 1158696., 1172346.,
      1186080., 1299888., 1315392., 1330992., 1346688., 1452150., 1469592.,
      1487142., 1504800., 1279152., 1294656., 1310256., 1325952., 1108842.,
      1122408., 1136058., 1149792., 941316.,  952944.,  964644.,  976416.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8961.,  9492.,  10041., 10608., 9573.,  10140., 10725., 11328., 10185.,
      10788., 11409., 12048., 10797., 11436., 12093., 12768., 11409., 12084.,
      12777., 13488., 12021., 12732., 13461., 14208., 12633., 13380., 14145.,
      14928., 14469., 15324., 16197., 17088., 15081., 15972., 16881., 17808.,
      15693., 16620., 17565., 18528., 16305., 17268., 18249., 19248., 16917.,
      17916., 18933., 19968., 17529., 18564., 19617., 20688., 18141., 19212.,
      20301., 21408., 19977., 21156., 22353., 23568., 20589., 21804., 23037.,
      24288., 21201., 22452., 23721., 25008., 21813., 23100., 24405., 25728.,
      22425., 23748., 25089., 26448., 23037., 24396., 25773., 27168., 23649.,
      25044., 26457., 27888., 25485., 26988., 28509., 30048., 26097., 27636.,
      29193., 30768., 26709., 28284., 29877., 31488., 27321., 28932., 30561.,
      32208., 27933., 29580., 31245., 32928., 28545., 30228., 31929., 33648.,
      29157., 30876., 32613., 34368., 30993., 32820., 34665., 36528., 31605.,
      33468., 35349., 37248., 32217., 34116., 36033., 37968., 32829., 34764.,
      36717., 38688., 33441., 35412., 37401., 39408., 34053., 36060., 38085.,
      40128., 34665., 36708., 38769., 40848., 36501., 38652., 40821., 43008.,
      37113., 39300., 41505., 43728., 37725., 39948., 42189., 44448., 38337.,
      40596., 42873., 45168., 38949., 41244., 43557., 45888., 39561., 41892.,
      44241., 46608., 40173., 42540., 44925., 47328., 42009., 44484., 46977.,
      49488., 42621., 45132., 47661., 50208., 43233., 45780., 48345., 50928.,
      43845., 46428., 49029., 51648., 44457., 47076., 49713., 52368., 45069.,
      47724., 50397., 53088., 45681., 48372., 51081., 53808.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1878996., 1882632., 1902216., 1905888., 1925580., 1929288., 1949088.,
      1952832., 2213358., 2217684., 2240448., 2244816., 2267706., 2272116.,
      2295132., 2299584., 2553264., 2558304., 2584224., 2589312., 2615376.,
      2620512., 2646720., 2651904., 2898522., 2904300., 2933352., 2939184.,
      2968398., 2974284., 3003660., 3009600., 2594544., 2599776., 2625504.,
      2630784., 2656656., 2661984., 2688000., 2693376., 2285598., 2290260.,
      2312688., 2317392., 2339946., 2344692., 2367372., 2372160., 1971876.,
      1975944., 1995096., 1999200., 2018460., 2022600., 2041968., 2046144.,
      2463566., 2468564., 2490656., 2495696., 2517914., 2522996., 2545340.,
      2550464., 2891833., 2897762., 2923438., 2929416., 2955239., 2961266.,
      2987236., 2993312., 3324552., 3331440., 3360672., 3367616., 3397016.,
      3404016., 3433584., 3440640., 3761499., 3769374., 3802134., 3810072.,
      3843021., 3851022., 3884160., 3892224., 3356584., 3363696., 3392704.,
      3399872., 3429048., 3436272., 3465616., 3472896., 2947889., 2954210.,
      2979494., 2985864., 3011295., 3017714., 3043292., 3049760., 2535638.,
      2541140., 2562728., 2568272., 2589986., 2595572., 2617412., 2623040.,
      3084208., 3090784., 3115168., 3121792., 3146320., 3152992., 3177664.,
      3184384., 3610376., 3618160., 3646496., 3654336., 3682840., 3690736.,
      3719408., 3727360., 4139328., 4148352., 4180608., 4189696., 4222144.,
      4231296., 4263936., 4273152., 4670808., 4681104., 4717248., 4727616.,
      4763976., 4774416., 4810992., 4821504., 4157504., 4166784., 4198784.,
      4208128., 4240320., 4249728., 4282112., 4291584., 3642184., 3650416.,
      3678304., 3686592., 3714648., 3722992., 3751216., 3759616., 3125104.,
      3132256., 3156064., 3163264., 3187216., 3194464., 3218560., 3225856.,
      3725370., 3733740., 3760200., 3768624., 3795246., 3803724., 3830508.,
      3839040., 4350843., 4360734., 4391478., 4401432., 4432365., 4442382.,
      4473504., 4483584., 4976856., 4988304., 5023296., 5034816., 5070024.,
      5081616., 5117040., 5128704., 5603121., 5616162., 5655366., 5668488.,
      5707935., 5721138., 5760828., 5774112., 4976568., 4988304., 5023008.,
      5034816., 5069736., 5081616., 5116752., 5128704., 4350339., 4360734.,
      4390974., 4401432., 4431861., 4442382., 4473000., 4483584., 3724722.,
      3733740., 3759552., 3768624., 3794598., 3803724., 3829860., 3839040.,
      3123952., 3132256., 3154912., 3163264., 3186064., 3194464., 3217408.,
      3225856., 3640616., 3650416., 3676736., 3686592., 3713080., 3722992.,
      3749648., 3759616., 4155456., 4166784., 4196736., 4208128., 4238272.,
      4249728., 4280064., 4291584., 4668216., 4681104., 4714656., 4727616.,
      4761384., 4774416., 4808400., 4821504., 4136768., 4148352., 4178048.,
      4189696., 4219584., 4231296., 4261376., 4273152., 3607912., 3618160.,
      3644032., 3654336., 3680376., 3690736., 3716944., 3727360., 3081904.,
      3090784., 3112864., 3121792., 3144016., 3152992., 3175360., 3184384.,
      2533118., 2541140., 2560208., 2568272., 2587466., 2595572., 2614892.,
      2623040., 2944753., 2954210., 2976358., 2985864., 3008159., 3017714.,
      3040156., 3049760., 3352776., 3363696., 3388896., 3399872., 3425240.,
      3436272., 3461808., 3472896., 3756963., 3769374., 3797598., 3810072.,
      3838485., 3851022., 3879624., 3892224., 3320296., 3331440., 3356416.,
      3367616., 3392760., 3404016., 3429328., 3440640., 2887913., 2897762.,
      2919518., 2929416., 2951319., 2961266., 2983316., 2993312., 2460038.,
      2468564., 2487128., 2495696., 2514386., 2522996., 2541812., 2550464.,
      1968420., 1975944., 1991640., 1999200., 2015004., 2022600., 2038512.,
      2046144., 2281398., 2290260., 2308488., 2317392., 2335746., 2344692.,
      2363172., 2372160., 2589552., 2599776., 2620512., 2630784., 2651664.,
      2661984., 2683008., 2693376., 2892690., 2904300., 2927520., 2939184.,
      2962566., 2974284., 2997828., 3009600., 2547888., 2558304., 2578848.,
      2589312., 2610000., 2620512., 2641344., 2651904., 2208486., 2217684.,
      2235576., 2244816., 2262834., 2272116., 2290260., 2299584., 1874676.,
      1882632., 1897896., 1905888., 1921260., 1929288., 1944768., 1952832.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17553., 17922., 18606., 18984., 19695., 20082.,  20820.,  21216.,
      18741., 19146., 19866., 20280., 21027., 21450.,  22224.,  22656.,
      19929., 20370., 21126., 21576., 22359., 22818.,  23628.,  24096.,
      21117., 21594., 22386., 22872., 23691., 24186.,  25032.,  25536.,
      22305., 22818., 23646., 24168., 25023., 25554.,  26436.,  26976.,
      23493., 24042., 24906., 25464., 26355., 26922.,  27840.,  28416.,
      24681., 25266., 26166., 26760., 27687., 28290.,  29244.,  29856.,
      28245., 28938., 29946., 30648., 31683., 32394.,  33456.,  34176.,
      29433., 30162., 31206., 31944., 33015., 33762.,  34860.,  35616.,
      30621., 31386., 32466., 33240., 34347., 35130.,  36264.,  37056.,
      31809., 32610., 33726., 34536., 35679., 36498.,  37668.,  38496.,
      32997., 33834., 34986., 35832., 37011., 37866.,  39072.,  39936.,
      34185., 35058., 36246., 37128., 38343., 39234.,  40476.,  41376.,
      35373., 36282., 37506., 38424., 39675., 40602.,  41880.,  42816.,
      38937., 39954., 41286., 42312., 43671., 44706.,  46092.,  47136.,
      40125., 41178., 42546., 43608., 45003., 46074.,  47496.,  48576.,
      41313., 42402., 43806., 44904., 46335., 47442.,  48900.,  50016.,
      42501., 43626., 45066., 46200., 47667., 48810.,  50304.,  51456.,
      43689., 44850., 46326., 47496., 48999., 50178.,  51708.,  52896.,
      44877., 46074., 47586., 48792., 50331., 51546.,  53112.,  54336.,
      46065., 47298., 48846., 50088., 51663., 52914.,  54516.,  55776.,
      49629., 50970., 52626., 53976., 55659., 57018.,  58728.,  60096.,
      50817., 52194., 53886., 55272., 56991., 58386.,  60132.,  61536.,
      52005., 53418., 55146., 56568., 58323., 59754.,  61536.,  62976.,
      53193., 54642., 56406., 57864., 59655., 61122.,  62940.,  64416.,
      54381., 55866., 57666., 59160., 60987., 62490.,  64344.,  65856.,
      55569., 57090., 58926., 60456., 62319., 63858.,  65748.,  67296.,
      56757., 58314., 60186., 61752., 63651., 65226.,  67152.,  68736.,
      60321., 61986., 63966., 65640., 67647., 69330.,  71364.,  73056.,
      61509., 63210., 65226., 66936., 68979., 70698.,  72768.,  74496.,
      62697., 64434., 66486., 68232., 70311., 72066.,  74172.,  75936.,
      63885., 65658., 67746., 69528., 71643., 73434.,  75576.,  77376.,
      65073., 66882., 69006., 70824., 72975., 74802.,  76980.,  78816.,
      66261., 68106., 70266., 72120., 74307., 76170.,  78384.,  80256.,
      67449., 69330., 71526., 73416., 75639., 77538.,  79788.,  81696.,
      71013., 73002., 75306., 77304., 79635., 81642.,  84000.,  86016.,
      72201., 74226., 76566., 78600., 80967., 83010.,  85404.,  87456.,
      73389., 75450., 77826., 79896., 82299., 84378.,  86808.,  88896.,
      74577., 76674., 79086., 81192., 83631., 85746.,  88212.,  90336.,
      75765., 77898., 80346., 82488., 84963., 87114.,  89616.,  91776.,
      76953., 79122., 81606., 83784., 86295., 88482.,  91020.,  93216.,
      78141., 80346., 82866., 85080., 87627., 89850.,  92424.,  94656.,
      81705., 84018., 86646., 88968., 91623., 93954.,  96636.,  98976.,
      82893., 85242., 87906., 90264., 92955., 95322.,  98040.,  100416.,
      84081., 86466., 89166., 91560., 94287., 96690.,  99444.,  101856.,
      85269., 87690., 90426., 92856., 95619., 98058.,  100848., 103296.,
      86457., 88914., 91686., 94152., 96951., 99426.,  102252., 104736.,
      87645., 90138., 92946., 95448., 98283., 100794., 103656., 106176.,
      88833., 91362., 94206., 96744., 99615., 102162., 105060., 107616.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3754356.,  3757992.,  3761628.,  3765264.,  3800760.,  3804432.,
      3808104.,  3811776.,  3847452.,  3851160.,  3854868.,  3858576.,
      3894432.,  3898176.,  3901920.,  3905664.,  4422390.,  4426716.,
      4431042.,  4435368.,  4476528.,  4480896.,  4485264.,  4489632.,
      4531002.,  4535412.,  4539822.,  4544232.,  4585812.,  4590264.,
      4594716.,  4599168.,  5101488.,  5106528.,  5111568.,  5116608.,
      5163360.,  5168448.,  5173536.,  5178624.,  5225616.,  5230752.,
      5235888.,  5241024.,  5288256.,  5293440.,  5298624.,  5303808.,
      5791266.,  5797044.,  5802822.,  5808600.,  5860872.,  5866704.,
      5872536.,  5878368.,  5930910.,  5936796.,  5942682.,  5948568.,
      6001380.,  6007320.,  6013260.,  6019200.,  5183856.,  5189088.,
      5194320.,  5199552.,  5245728.,  5251008.,  5256288.,  5261568.,
      5307984.,  5313312.,  5318640.,  5323968.,  5370624.,  5376000.,
      5381376.,  5386752.,  4566534.,  4571196.,  4575858.,  4580520.,
      4620672.,  4625376.,  4630080.,  4634784.,  4675146.,  4679892.,
      4684638.,  4689384.,  4729956.,  4734744.,  4739532.,  4744320.,
      3939684.,  3943752.,  3947820.,  3951888.,  3986088.,  3990192.,
      3994296.,  3998400.,  4032780.,  4036920.,  4041060.,  4045200.,
      4079760.,  4083936.,  4088112.,  4092288.,  4922134.,  4927132.,
      4932130.,  4937128.,  4976272.,  4981312.,  4986352.,  4991392.,
      5030746.,  5035828.,  5040910.,  5045992.,  5085556.,  5090680.,
      5095804.,  5100928.,  5777737.,  5783666.,  5789595.,  5795524.,
      5840898.,  5846876.,  5852854.,  5858832.,  5904451.,  5910478.,
      5916505.,  5922532.,  5968396.,  5974472.,  5980548.,  5986624.,
      6642216.,  6649104.,  6655992.,  6662880.,  6714400.,  6721344.,
      6728288.,  6735232.,  6787032.,  6794032.,  6801032.,  6808032.,
      6860112.,  6867168.,  6874224.,  6881280.,  7515123.,  7522998.,
      7530873.,  7538748.,  7596330.,  7604268.,  7612206.,  7620144.,
      7678041.,  7686042.,  7694043.,  7702044.,  7760256.,  7768320.,
      7776384.,  7784448.,  6706056.,  6713168.,  6720280.,  6727392.,
      6778240.,  6785408.,  6792576.,  6799744.,  6850872.,  6858096.,
      6865320.,  6872544.,  6923952.,  6931232.,  6938512.,  6945792.,
      5889457.,  5895778.,  5902099.,  5908420.,  5952618.,  5958988.,
      5965358.,  5971728.,  6016171.,  6022590.,  6029009.,  6035428.,
      6080116.,  6086584.,  6093052.,  6099520.,  5065774.,  5071276.,
      5076778.,  5082280.,  5119912.,  5125456.,  5131000.,  5136544.,
      5174386.,  5179972.,  5185558.,  5191144.,  5229196.,  5234824.,
      5240452.,  5246080.,  6161840.,  6168416.,  6174992.,  6181568.,
      6223712.,  6230336.,  6236960.,  6243584.,  6285968.,  6292640.,
      6299312.,  6305984.,  6348608.,  6355328.,  6362048.,  6368768.,
      7212968.,  7220752.,  7228536.,  7236320.,  7285152.,  7292992.,
      7300832.,  7308672.,  7357784.,  7365680.,  7373576.,  7381472.,
      7430864.,  7438816.,  7446768.,  7454720.,  8269632.,  8278656.,
      8287680.,  8296704.,  8352128.,  8361216.,  8370304.,  8379392.,
      8435136.,  8444288.,  8453440.,  8462592.,  8518656.,  8527872.,
      8537088.,  8546304.,  9331320.,  9341616.,  9351912.,  9362208.,
      9424128.,  9434496.,  9444864.,  9455232.,  9517512.,  9527952.,
      9538392.,  9548832.,  9611472.,  9621984.,  9632496.,  9643008.,
      8305728.,  8315008.,  8324288.,  8333568.,  8388224.,  8397568.,
      8406912.,  8416256.,  8471232.,  8480640.,  8490048.,  8499456.,
      8554752.,  8564224.,  8573696.,  8583168.,  7276136.,  7284368.,
      7292600.,  7300832.,  7348320.,  7356608.,  7364896.,  7373184.,
      7420952.,  7429296.,  7437640.,  7445984.,  7494032.,  7502432.,
      7510832.,  7519232.,  6243056.,  6250208.,  6257360.,  6264512.,
      6304928.,  6312128.,  6319328.,  6326528.,  6367184.,  6374432.,
      6381680.,  6388928.,  6429824.,  6437120.,  6444416.,  6451712.,
      7442370.,  7450740.,  7459110.,  7467480.,  7511976.,  7520400.,
      7528824.,  7537248.,  7582014.,  7590492.,  7598970.,  7607448.,
      7652484.,  7661016.,  7669548.,  7678080.,  8691795.,  8701686.,
      8711577.,  8721468.,  8773002.,  8782956.,  8792910.,  8802864.,
      8854713.,  8864730.,  8874747.,  8884764.,  8936928.,  8947008.,
      8957088.,  8967168.,  9942264.,  9953712.,  9965160.,  9976608.,
      10035072., 10046592., 10058112., 10069632., 10128456., 10140048.,
      10151640., 10163232., 10222416., 10234080., 10245744., 10257408.,
      11193201., 11206242., 11219283., 11232324., 11297610., 11310732.,
      11323854., 11336976., 11402667., 11415870., 11429073., 11442276.,
      11508372., 11521656., 11534940., 11548224., 9941400.,  9953136.,
      9964872.,  9976608.,  10034208., 10046016., 10057824., 10069632.,
      10127592., 10139472., 10151352., 10163232., 10221552., 10233504.,
      10245456., 10257408., 8690283.,  8700678.,  8711073.,  8721468.,
      8771490.,  8781948.,  8792406.,  8802864.,  8853201.,  8863722.,
      8874243.,  8884764.,  8935416.,  8946000.,  8956584.,  8967168.,
      7440426.,  7449444.,  7458462.,  7467480.,  7510032.,  7519104.,
      7528176.,  7537248.,  7580070.,  7589196.,  7598322.,  7607448.,
      7650540.,  7659720.,  7668900.,  7678080.,  6239600.,  6247904.,
      6256208.,  6264512.,  6301472.,  6309824.,  6318176.,  6326528.,
      6363728.,  6372128.,  6380528.,  6388928.,  6426368.,  6434816.,
      6443264.,  6451712.,  7271432.,  7281232.,  7291032.,  7300832.,
      7343616.,  7353472.,  7363328.,  7373184.,  7416248.,  7426160.,
      7436072.,  7445984.,  7489328.,  7499296.,  7509264.,  7519232.,
      8299584.,  8310912.,  8322240.,  8333568.,  8382080.,  8393472.,
      8404864.,  8416256.,  8465088.,  8476544.,  8488000.,  8499456.,
      8548608.,  8560128.,  8571648.,  8583168.,  9323544.,  9336432.,
      9349320.,  9362208.,  9416352.,  9429312.,  9442272.,  9455232.,
      9509736.,  9522768.,  9535800.,  9548832.,  9603696.,  9616800.,
      9629904.,  9643008.,  8261952.,  8273536.,  8285120.,  8296704.,
      8344448.,  8356096.,  8367744.,  8379392.,  8427456.,  8439168.,
      8450880.,  8462592.,  8510976.,  8522752.,  8534528.,  8546304.,
      7205576.,  7215824.,  7226072.,  7236320.,  7277760.,  7288064.,
      7298368.,  7308672.,  7350392.,  7360752.,  7371112.,  7381472.,
      7423472.,  7433888.,  7444304.,  7454720.,  6154928.,  6163808.,
      6172688.,  6181568.,  6216800.,  6225728.,  6234656.,  6243584.,
      6279056.,  6288032.,  6297008.,  6305984.,  6341696.,  6350720.,
      6359744.,  6368768.,  5058214.,  5066236.,  5074258.,  5082280.,
      5112352.,  5120416.,  5128480.,  5136544.,  5166826.,  5174932.,
      5183038.,  5191144.,  5221636.,  5229784.,  5237932.,  5246080.,
      5880049.,  5889506.,  5898963.,  5908420.,  5943210.,  5952716.,
      5962222.,  5971728.,  6006763.,  6016318.,  6025873.,  6035428.,
      6070708.,  6080312.,  6089916.,  6099520.,  6694632.,  6705552.,
      6716472.,  6727392.,  6766816.,  6777792.,  6788768.,  6799744.,
      6839448.,  6850480.,  6861512.,  6872544.,  6912528.,  6923616.,
      6934704.,  6945792.,  7501515.,  7513926.,  7526337.,  7538748.,
      7582722.,  7595196.,  7607670.,  7620144.,  7664433.,  7676970.,
      7689507.,  7702044.,  7746648.,  7759248.,  7771848.,  7784448.,
      6629448.,  6640592.,  6651736.,  6662880.,  6701632.,  6712832.,
      6724032.,  6735232.,  6774264.,  6785520.,  6796776.,  6808032.,
      6847344.,  6858656.,  6869968.,  6881280.,  5765977.,  5775826.,
      5785675.,  5795524.,  5829138.,  5839036.,  5848934.,  5858832.,
      5892691.,  5902638.,  5912585.,  5922532.,  5956636.,  5966632.,
      5976628.,  5986624.,  4911550.,  4920076.,  4928602.,  4937128.,
      4965688.,  4974256.,  4982824.,  4991392.,  5020162.,  5028772.,
      5037382.,  5045992.,  5074972.,  5083624.,  5092276.,  5100928.,
      3929316.,  3936840.,  3944364.,  3951888.,  3975720.,  3983280.,
      3990840.,  3998400.,  4022412.,  4030008.,  4037604.,  4045200.,
      4069392.,  4077024.,  4084656.,  4092288.,  4553934.,  4562796.,
      4571658.,  4580520.,  4608072.,  4616976.,  4625880.,  4634784.,
      4662546.,  4671492.,  4680438.,  4689384.,  4717356.,  4726344.,
      4735332.,  4744320.,  5168880.,  5179104.,  5189328.,  5199552.,
      5230752.,  5241024.,  5251296.,  5261568.,  5293008.,  5303328.,
      5313648.,  5323968.,  5355648.,  5366016.,  5376384.,  5386752.,
      5773770.,  5785380.,  5796990.,  5808600.,  5843376.,  5855040.,
      5866704.,  5878368.,  5913414.,  5925132.,  5936850.,  5948568.,
      5983884.,  5995656.,  6007428.,  6019200.,  5085360.,  5095776.,
      5106192.,  5116608.,  5147232.,  5157696.,  5168160.,  5178624.,
      5209488.,  5220000.,  5230512.,  5241024.,  5272128.,  5282688.,
      5293248.,  5303808.,  4407774.,  4416972.,  4426170.,  4435368.,
      4461912.,  4471152.,  4480392.,  4489632.,  4516386.,  4525668.,
      4534950.,  4544232.,  4571196.,  4580520.,  4589844.,  4599168.,
      3741396.,  3749352.,  3757308.,  3765264.,  3787800.,  3795792.,
      3803784.,  3811776.,  3834492.,  3842520.,  3850548.,  3858576.,
      3881472.,  3889536.,  3897600.,  3905664.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      34737.,  35106.,  35475.,  35844.,  36834.,  37212.,  37590.,  37968.,
      39003.,  39390.,  39777.,  40164.,  41244.,  41640.,  42036.,  42432.,
      37077.,  37482.,  37887.,  38292.,  39318.,  39732.,  40146.,  40560.,
      41631.,  42054.,  42477.,  42900.,  44016.,  44448.,  44880.,  45312.,
      39417.,  39858.,  40299.,  40740.,  41802.,  42252.,  42702.,  43152.,
      44259.,  44718.,  45177.,  45636.,  46788.,  47256.,  47724.,  48192.,
      41757.,  42234.,  42711.,  43188.,  44286.,  44772.,  45258.,  45744.,
      46887.,  47382.,  47877.,  48372.,  49560.,  50064.,  50568.,  51072.,
      44097.,  44610.,  45123.,  45636.,  46770.,  47292.,  47814.,  48336.,
      49515.,  50046.,  50577.,  51108.,  52332.,  52872.,  53412.,  53952.,
      46437.,  46986.,  47535.,  48084.,  49254.,  49812.,  50370.,  50928.,
      52143.,  52710.,  53277.,  53844.,  55104.,  55680.,  56256.,  56832.,
      48777.,  49362.,  49947.,  50532.,  51738.,  52332.,  52926.,  53520.,
      54771.,  55374.,  55977.,  56580.,  57876.,  58488.,  59100.,  59712.,
      55797.,  56490.,  57183.,  57876.,  59190.,  59892.,  60594.,  61296.,
      62655.,  63366.,  64077.,  64788.,  66192.,  66912.,  67632.,  68352.,
      58137.,  58866.,  59595.,  60324.,  61674.,  62412.,  63150.,  63888.,
      65283.,  66030.,  66777.,  67524.,  68964.,  69720.,  70476.,  71232.,
      60477.,  61242.,  62007.,  62772.,  64158.,  64932.,  65706.,  66480.,
      67911.,  68694.,  69477.,  70260.,  71736.,  72528.,  73320.,  74112.,
      62817.,  63618.,  64419.,  65220.,  66642.,  67452.,  68262.,  69072.,
      70539.,  71358.,  72177.,  72996.,  74508.,  75336.,  76164.,  76992.,
      65157.,  65994.,  66831.,  67668.,  69126.,  69972.,  70818.,  71664.,
      73167.,  74022.,  74877.,  75732.,  77280.,  78144.,  79008.,  79872.,
      67497.,  68370.,  69243.,  70116.,  71610.,  72492.,  73374.,  74256.,
      75795.,  76686.,  77577.,  78468.,  80052.,  80952.,  81852.,  82752.,
      69837.,  70746.,  71655.,  72564.,  74094.,  75012.,  75930.,  76848.,
      78423.,  79350.,  80277.,  81204.,  82824.,  83760.,  84696.,  85632.,
      76857.,  77874.,  78891.,  79908.,  81546.,  82572.,  83598.,  84624.,
      86307.,  87342.,  88377.,  89412.,  91140.,  92184.,  93228.,  94272.,
      79197.,  80250.,  81303.,  82356.,  84030.,  85092.,  86154.,  87216.,
      88935.,  90006.,  91077.,  92148.,  93912.,  94992.,  96072.,  97152.,
      81537.,  82626.,  83715.,  84804.,  86514.,  87612.,  88710.,  89808.,
      91563.,  92670.,  93777.,  94884.,  96684.,  97800.,  98916.,  100032.,
      83877.,  85002.,  86127.,  87252.,  88998.,  90132.,  91266.,  92400.,
      94191.,  95334.,  96477.,  97620.,  99456.,  100608., 101760., 102912.,
      86217.,  87378.,  88539.,  89700.,  91482.,  92652.,  93822.,  94992.,
      96819.,  97998.,  99177.,  100356., 102228., 103416., 104604., 105792.,
      88557.,  89754.,  90951.,  92148.,  93966.,  95172.,  96378.,  97584.,
      99447.,  100662., 101877., 103092., 105000., 106224., 107448., 108672.,
      90897.,  92130.,  93363.,  94596.,  96450.,  97692.,  98934.,  100176.,
      102075., 103326., 104577., 105828., 107772., 109032., 110292., 111552.,
      97917.,  99258.,  100599., 101940., 103902., 105252., 106602., 107952.,
      109959., 111318., 112677., 114036., 116088., 117456., 118824., 120192.,
      100257., 101634., 103011., 104388., 106386., 107772., 109158., 110544.,
      112587., 113982., 115377., 116772., 118860., 120264., 121668., 123072.,
      102597., 104010., 105423., 106836., 108870., 110292., 111714., 113136.,
      115215., 116646., 118077., 119508., 121632., 123072., 124512., 125952.,
      104937., 106386., 107835., 109284., 111354., 112812., 114270., 115728.,
      117843., 119310., 120777., 122244., 124404., 125880., 127356., 128832.,
      107277., 108762., 110247., 111732., 113838., 115332., 116826., 118320.,
      120471., 121974., 123477., 124980., 127176., 128688., 130200., 131712.,
      109617., 111138., 112659., 114180., 116322., 117852., 119382., 120912.,
      123099., 124638., 126177., 127716., 129948., 131496., 133044., 134592.,
      111957., 113514., 115071., 116628., 118806., 120372., 121938., 123504.,
      125727., 127302., 128877., 130452., 132720., 134304., 135888., 137472.,
      118977., 120642., 122307., 123972., 126258., 127932., 129606., 131280.,
      133611., 135294., 136977., 138660., 141036., 142728., 144420., 146112.,
      121317., 123018., 124719., 126420., 128742., 130452., 132162., 133872.,
      136239., 137958., 139677., 141396., 143808., 145536., 147264., 148992.,
      123657., 125394., 127131., 128868., 131226., 132972., 134718., 136464.,
      138867., 140622., 142377., 144132., 146580., 148344., 150108., 151872.,
      125997., 127770., 129543., 131316., 133710., 135492., 137274., 139056.,
      141495., 143286., 145077., 146868., 149352., 151152., 152952., 154752.,
      128337., 130146., 131955., 133764., 136194., 138012., 139830., 141648.,
      144123., 145950., 147777., 149604., 152124., 153960., 155796., 157632.,
      130677., 132522., 134367., 136212., 138678., 140532., 142386., 144240.,
      146751., 148614., 150477., 152340., 154896., 156768., 158640., 160512.,
      133017., 134898., 136779., 138660., 141162., 143052., 144942., 146832.,
      149379., 151278., 153177., 155076., 157668., 159576., 161484., 163392.,
      140037., 142026., 144015., 146004., 148614., 150612., 152610., 154608.,
      157263., 159270., 161277., 163284., 165984., 168000., 170016., 172032.,
      142377., 144402., 146427., 148452., 151098., 153132., 155166., 157200.,
      159891., 161934., 163977., 166020., 168756., 170808., 172860., 174912.,
      144717., 146778., 148839., 150900., 153582., 155652., 157722., 159792.,
      162519., 164598., 166677., 168756., 171528., 173616., 175704., 177792.,
      147057., 149154., 151251., 153348., 156066., 158172., 160278., 162384.,
      165147., 167262., 169377., 171492., 174300., 176424., 178548., 180672.,
      149397., 151530., 153663., 155796., 158550., 160692., 162834., 164976.,
      167775., 169926., 172077., 174228., 177072., 179232., 181392., 183552.,
      151737., 153906., 156075., 158244., 161034., 163212., 165390., 167568.,
      170403., 172590., 174777., 176964., 179844., 182040., 184236., 186432.,
      154077., 156282., 158487., 160692., 163518., 165732., 167946., 170160.,
      173031., 175254., 177477., 179700., 182616., 184848., 187080., 189312.,
      161097., 163410., 165723., 168036., 170970., 173292., 175614., 177936.,
      180915., 183246., 185577., 187908., 190932., 193272., 195612., 197952.,
      163437., 165786., 168135., 170484., 173454., 175812., 178170., 180528.,
      183543., 185910., 188277., 190644., 193704., 196080., 198456., 200832.,
      165777., 168162., 170547., 172932., 175938., 178332., 180726., 183120.,
      186171., 188574., 190977., 193380., 196476., 198888., 201300., 203712.,
      168117., 170538., 172959., 175380., 178422., 180852., 183282., 185712.,
      188799., 191238., 193677., 196116., 199248., 201696., 204144., 206592.,
      170457., 172914., 175371., 177828., 180906., 183372., 185838., 188304.,
      191427., 193902., 196377., 198852., 202020., 204504., 206988., 209472.,
      172797., 175290., 177783., 180276., 183390., 185892., 188394., 190896.,
      194055., 196566., 199077., 201588., 204792., 207312., 209832., 212352.,
      175137., 177666., 180195., 182724., 185874., 188412., 190950., 193488.,
      196683., 199230., 201777., 204324., 207564., 210120., 212676., 215232.};
  const std::array<int, 4> in_shape = {{1, 9, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      87934.,  101336., 114930., 128710., 116550., 104216., 91714.,
      114758., 131852., 149100., 166495., 150360., 134092., 117698.,
      143192., 164128., 185160., 206280., 185880., 165408., 144872.,
      172536., 197364., 222210., 247065., 222210., 197364., 172536.,
      144872., 165408., 185880., 206280., 185160., 164128., 143192.,
      117698., 134092., 150360., 166495., 149100., 131852., 114758.,
      91714.,  104216., 116550., 128710., 114930., 101336., 87934.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1310., 1388., 1466., 1544., 1622., 1700., 1778., 2090., 2168., 2246.,
      2324., 2402., 2480., 2558., 2870., 2948., 3026., 3104., 3182., 3260.,
      3338., 3650., 3728., 3806., 3884., 3962., 4040., 4118., 4430., 4508.,
      4586., 4664., 4742., 4820., 4898., 5210., 5288., 5366., 5444., 5522.,
      5600., 5678., 5990., 6068., 6146., 6224., 6302., 6380., 6458.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      174650., 175868., 201256., 202672., 228240., 229860., 255590., 257420.,
      231426., 233100., 206920., 208432., 182084., 183428., 227850., 229516.,
      261772., 263704., 295995., 298200., 330505., 332990., 298452., 300720.,
      266140., 268184., 233583., 235396., 284200., 286384., 325728., 328256.,
      367440., 370320., 409320., 412560., 368808., 371760., 328160., 330816.,
      287392., 289744., 342300., 345072., 391524., 394728., 440775., 444420.,
      490035., 494130., 440694., 444420., 391380., 394728., 342111., 345072.,
      287000., 289744., 327648., 330816., 368160., 371760., 408520., 412560.,
      366648., 370320., 324960., 328256., 283472., 286384., 232750., 235396.,
      265132., 268184., 297255., 300720., 329105., 332990., 294672., 298200.,
      260540., 263704., 226723., 229516., 180950., 183428., 205576., 208432.,
      229860., 233100., 253790., 257420., 226566., 229860., 199720., 202672.,
      173264., 175868.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2470.,  2620.,  2614.,  2776.,  2758.,  2932.,  2902.,  3088.,  3046.,
      3244.,  3190.,  3400.,  3334.,  3556.,  3910.,  4180.,  4054.,  4336.,
      4198.,  4492.,  4342.,  4648.,  4486.,  4804.,  4630.,  4960.,  4774.,
      5116.,  5350.,  5740.,  5494.,  5896.,  5638.,  6052.,  5782.,  6208.,
      5926.,  6364.,  6070.,  6520.,  6214.,  6676.,  6790.,  7300.,  6934.,
      7456.,  7078.,  7612.,  7222.,  7768.,  7366.,  7924.,  7510.,  8080.,
      7654.,  8236.,  8230.,  8860.,  8374.,  9016.,  8518.,  9172.,  8662.,
      9328.,  8806.,  9484.,  8950.,  9640.,  9094.,  9796.,  9670.,  10420.,
      9814.,  10576., 9958.,  10732., 10102., 10888., 10246., 11044., 10390.,
      11200., 10534., 11356., 11110., 11980., 11254., 12136., 11398., 12292.,
      11542., 12448., 11686., 12604., 11830., 12760., 11974., 12916.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      348082., 349300., 350518., 351736., 401096., 402512., 403928., 405344.,
      454860., 456480., 458100., 459720., 509350., 511180., 513010., 514840.,
      461178., 462852., 464526., 466200., 412328., 413840., 415352., 416864.,
      362824., 364168., 365512., 366856., 454034., 455700., 457366., 459032.,
      521612., 523544., 525476., 527408., 589785., 591990., 594195., 596400.,
      658525., 661010., 663495., 665980., 594636., 596904., 599172., 601440.,
      530236., 532280., 534324., 536368., 465353., 467166., 468979., 470792.,
      566216., 568400., 570584., 572768., 648928., 651456., 653984., 656512.,
      732000., 734880., 737760., 740640., 815400., 818640., 821880., 825120.,
      734664., 737616., 740568., 743520., 653664., 656320., 658976., 661632.,
      572432., 574784., 577136., 579488., 681828., 684600., 687372., 690144.,
      779844., 783048., 786252., 789456., 877905., 881550., 885195., 888840.,
      975975., 980070., 984165., 988260., 877662., 881388., 885114., 888840.,
      779412., 782760., 786108., 789456., 681261., 684222., 687183., 690144.,
      571256., 574000., 576744., 579488., 652128., 655296., 658464., 661632.,
      732720., 736320., 739920., 743520., 813000., 817040., 821080., 825120.,
      729624., 733296., 736968., 740640., 646624., 649920., 653216., 656512.,
      564032., 566944., 569856., 572768., 462854., 465500., 468146., 470792.,
      527212., 530264., 533316., 536368., 591045., 594510., 597975., 601440.,
      654325., 658210., 662095., 665980., 585816., 589344., 592872., 596400.,
      517916., 521080., 524244., 527408., 450653., 453446., 456239., 459032.,
      359422., 361900., 364378., 366856., 408296., 411152., 414008., 416864.,
      456480., 459720., 462960., 466200., 503950., 507580., 511210., 514840.,
      449838., 453132., 456426., 459720., 396488., 399440., 402392., 405344.,
      343924., 346528., 349132., 351736.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4790.,  4940.,  5090.,  5240.,  5066.,  5228.,  5390.,  5552.,  5342.,
      5516.,  5690.,  5864.,  5618.,  5804.,  5990.,  6176.,  5894.,  6092.,
      6290.,  6488.,  6170.,  6380.,  6590.,  6800.,  6446.,  6668.,  6890.,
      7112.,  7550.,  7820.,  8090.,  8360.,  7826.,  8108.,  8390.,  8672.,
      8102.,  8396.,  8690.,  8984.,  8378.,  8684.,  8990.,  9296.,  8654.,
      8972.,  9290.,  9608.,  8930.,  9260.,  9590.,  9920.,  9206.,  9548.,
      9890.,  10232., 10310., 10700., 11090., 11480., 10586., 10988., 11390.,
      11792., 10862., 11276., 11690., 12104., 11138., 11564., 11990., 12416.,
      11414., 11852., 12290., 12728., 11690., 12140., 12590., 13040., 11966.,
      12428., 12890., 13352., 13070., 13580., 14090., 14600., 13346., 13868.,
      14390., 14912., 13622., 14156., 14690., 15224., 13898., 14444., 14990.,
      15536., 14174., 14732., 15290., 15848., 14450., 15020., 15590., 16160.,
      14726., 15308., 15890., 16472., 15830., 16460., 17090., 17720., 16106.,
      16748., 17390., 18032., 16382., 17036., 17690., 18344., 16658., 17324.,
      17990., 18656., 16934., 17612., 18290., 18968., 17210., 17900., 18590.,
      19280., 17486., 18188., 18890., 19592., 18590., 19340., 20090., 20840.,
      18866., 19628., 20390., 21152., 19142., 19916., 20690., 21464., 19418.,
      20204., 20990., 21776., 19694., 20492., 21290., 22088., 19970., 20780.,
      21590., 22400., 20246., 21068., 21890., 22712., 21350., 22220., 23090.,
      23960., 21626., 22508., 23390., 24272., 21902., 22796., 23690., 24584.,
      22178., 23084., 23990., 24896., 22454., 23372., 24290., 25208., 22730.,
      23660., 24590., 25520., 23006., 23948., 24890., 25832.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      344134., 351736., 396656., 405344., 449946., 459720., 503980., 514840.,
      456426., 466200., 408176., 416864., 359254., 366856., 450163., 459032.,
      517272., 527408., 584997., 596400., 653310., 665980., 590037., 601440.,
      526232., 536368., 461923., 470792., 562632., 572768., 644928., 656512.,
      727608., 740640., 810640., 825120., 730488., 743520., 650048., 661632.,
      569352., 579488., 678741., 690144., 776424., 789456., 874179., 888840.,
      971970., 988260., 874179., 888840., 776424., 789456., 678741., 690144.,
      569352., 579488., 650048., 661632., 730488., 743520., 810640., 825120.,
      727608., 740640., 644928., 656512., 562632., 572768., 461923., 470792.,
      526232., 536368., 590037., 601440., 653310., 665980., 584997., 596400.,
      517272., 527408., 450163., 459032., 359254., 366856., 408176., 416864.,
      456426., 466200., 503980., 514840., 449946., 459720., 396656., 405344.,
      344134., 351736.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4796.,  5240.,  5084.,  5552.,  5372.,  5864.,  5660.,  6176.,  5948.,
      6488.,  6236.,  6800.,  6524.,  7112.,  7676.,  8360.,  7964.,  8672.,
      8252.,  8984.,  8540.,  9296.,  8828.,  9608.,  9116.,  9920.,  9404.,
      10232., 10556., 11480., 10844., 11792., 11132., 12104., 11420., 12416.,
      11708., 12728., 11996., 13040., 12284., 13352., 13436., 14600., 13724.,
      14912., 14012., 15224., 14300., 15536., 14588., 15848., 14876., 16160.,
      15164., 16472., 16316., 17720., 16604., 18032., 16892., 18344., 17180.,
      18656., 17468., 18968., 17756., 19280., 18044., 19592., 19196., 20840.,
      19484., 21152., 19772., 21464., 20060., 21776., 20348., 22088., 20636.,
      22400., 20924., 22712., 22076., 23960., 22364., 24272., 22652., 24584.,
      22940., 24896., 23228., 25208., 23516., 25520., 23804., 25832.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      685874.,  688268.,  701036.,  703472.,  790528.,  793312.,  807856.,
      810688.,  896706.,  899892.,  916200.,  919440.,  1004360., 1007960.,
      1026020., 1029680., 909558.,  912852.,  929052.,  932400.,  813376.,
      816352.,  830704.,  833728.,  715862.,  718508.,  731024.,  733712.,
      897043.,  900326.,  914732.,  918064.,  1030736., 1034544., 1050952.,
      1054816., 1165647., 1169994., 1188390., 1192800., 1301720., 1306620.,
      1326990., 1331960., 1175601., 1180074., 1198344., 1202880., 1048432.,
      1052464., 1068648., 1072736., 920269.,  923846.,  937958.,  941584.,
      1120952., 1125264., 1141168., 1145536., 1284864., 1289856., 1307968.,
      1313024., 1449528., 1455216., 1475520., 1481280., 1614880., 1621280.,
      1643760., 1650240., 1455144., 1460976., 1481136., 1487040., 1294848.,
      1300096., 1317952., 1323264., 1134056., 1138704., 1154272., 1158976.,
      1352001., 1357482., 1374744., 1380288., 1546512., 1552848., 1572504.,
      1578912., 1741149., 1748358., 1770390., 1777680., 1935840., 1943940.,
      1968330., 1976520., 1740987., 1748358., 1770228., 1777680., 1546224.,
      1552848., 1572216., 1578912., 1351623., 1357482., 1374366., 1380288.,
      1133272., 1138704., 1153488., 1158976., 1293824., 1300096., 1316928.,
      1323264., 1453848., 1460976., 1479840., 1487040., 1613280., 1621280.,
      1642160., 1650240., 1447944., 1455216., 1473936., 1481280., 1283328.,
      1289856., 1306432., 1313024., 1119496., 1125264., 1139712., 1145536.,
      918603.,  923846.,  936292.,  941584.,  1046416., 1052464., 1066632.,
      1072736., 1173207., 1180074., 1195950., 1202880., 1298920., 1306620.,
      1324190., 1331960., 1163001., 1169994., 1185744., 1192800., 1028272.,
      1034544., 1048488., 1054816., 894789.,  900326.,  912478.,  918064.,
      713594.,  718508.,  728756.,  733712.,  810688.,  816352.,  828016.,
      833728.,  906426.,  912852.,  925920.,  932400.,  1000760., 1007960.,
      1022420., 1029680., 893358.,  899892.,  912852.,  919440.,  787456.,
      793312.,  804784.,  810688.,  683102.,  688268.,  698264.,  703472.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9304.,  9592.,  10180., 10480., 9856.,  10168., 10780., 11104., 10408.,
      10744., 11380., 11728., 10960., 11320., 11980., 12352., 11512., 11896.,
      12580., 12976., 12064., 12472., 13180., 13600., 12616., 13048., 13780.,
      14224., 14824., 15352., 16180., 16720., 15376., 15928., 16780., 17344.,
      15928., 16504., 17380., 17968., 16480., 17080., 17980., 18592., 17032.,
      17656., 18580., 19216., 17584., 18232., 19180., 19840., 18136., 18808.,
      19780., 20464., 20344., 21112., 22180., 22960., 20896., 21688., 22780.,
      23584., 21448., 22264., 23380., 24208., 22000., 22840., 23980., 24832.,
      22552., 23416., 24580., 25456., 23104., 23992., 25180., 26080., 23656.,
      24568., 25780., 26704., 25864., 26872., 28180., 29200., 26416., 27448.,
      28780., 29824., 26968., 28024., 29380., 30448., 27520., 28600., 29980.,
      31072., 28072., 29176., 30580., 31696., 28624., 29752., 31180., 32320.,
      29176., 30328., 31780., 32944., 31384., 32632., 34180., 35440., 31936.,
      33208., 34780., 36064., 32488., 33784., 35380., 36688., 33040., 34360.,
      35980., 37312., 33592., 34936., 36580., 37936., 34144., 35512., 37180.,
      38560., 34696., 36088., 37780., 39184., 36904., 38392., 40180., 41680.,
      37456., 38968., 40780., 42304., 38008., 39544., 41380., 42928., 38560.,
      40120., 41980., 43552., 39112., 40696., 42580., 44176., 39664., 41272.,
      43180., 44800., 40216., 41848., 43780., 45424., 42424., 44152., 46180.,
      47920., 42976., 44728., 46780., 48544., 43528., 45304., 47380., 49168.,
      44080., 45880., 47980., 49792., 44632., 46456., 48580., 50416., 45184.,
      47032., 49180., 51040., 45736., 47608., 49780., 51664.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1369354., 1371748., 1374142., 1376536., 1399636., 1402072., 1404508.,
      1406944., 1578272., 1581056., 1583840., 1586624., 1612880., 1615712.,
      1618544., 1621376., 1790226., 1793412., 1796598., 1799784., 1829160.,
      1832400., 1835640., 1838880., 2005120., 2008720., 2012320., 2015920.,
      2048380., 2052040., 2055700., 2059360., 1815822., 1819116., 1822410.,
      1825704., 1854756., 1858104., 1861452., 1864800., 1623776., 1626752.,
      1629728., 1632704., 1658384., 1661408., 1664432., 1667456., 1429078.,
      1431724., 1434370., 1437016., 1459360., 1462048., 1464736., 1467424.,
      1790803., 1794086., 1797369., 1800652., 1826132., 1829464., 1832796.,
      1836128., 2057664., 2061472., 2065280., 2069088., 2098040., 2101904.,
      2105768., 2109632., 2326947., 2331294., 2335641., 2339988., 2372370.,
      2376780., 2381190., 2385600., 2598540., 2603440., 2608340., 2613240.,
      2649010., 2653980., 2658950., 2663920., 2346729., 2351202., 2355675.,
      2360148., 2392152., 2396688., 2401224., 2405760., 2092832., 2096864.,
      2100896., 2104928., 2133208., 2137296., 2141384., 2145472., 1836961.,
      1840538., 1844115., 1847692., 1872290., 1875916., 1879542., 1883168.,
      2237592., 2241904., 2246216., 2250528., 2277968., 2282336., 2286704.,
      2291072., 2564736., 2569728., 2574720., 2579712., 2610880., 2615936.,
      2620992., 2626048., 2893368., 2899056., 2904744., 2910432., 2945280.,
      2951040., 2956800., 2962560., 3223360., 3229760., 3236160., 3242560.,
      3281040., 3287520., 3294000., 3300480., 2904456., 2910288., 2916120.,
      2921952., 2956368., 2962272., 2968176., 2974080., 2584448., 2589696.,
      2594944., 2600192., 2630592., 2635904., 2641216., 2646528., 2263464.,
      2268112., 2272760., 2277408., 2303840., 2308544., 2313248., 2317952.,
      2698521., 2704002., 2709483., 2714964., 2743944., 2749488., 2755032.,
      2760576., 3086688., 3093024., 3099360., 3105696., 3138600., 3145008.,
      3151416., 3157824., 3475089., 3482298., 3489507., 3496716., 3533490.,
      3540780., 3548070., 3555360., 3863580., 3871680., 3879780., 3887880.,
      3928470., 3936660., 3944850., 3953040., 3474603., 3481974., 3489345.,
      3496716., 3533004., 3540456., 3547908., 3555360., 3085824., 3092448.,
      3099072., 3105696., 3137736., 3144432., 3151128., 3157824., 2697387.,
      2703246., 2709105., 2714964., 2742810., 2748732., 2754654., 2760576.,
      2261112., 2266544., 2271976., 2277408., 2301488., 2306976., 2312464.,
      2317952., 2581376., 2587648., 2593920., 2600192., 2627520., 2633856.,
      2640192., 2646528., 2900568., 2907696., 2914824., 2921952., 2952480.,
      2959680., 2966880., 2974080., 3218560., 3226560., 3234560., 3242560.,
      3276240., 3284320., 3292400., 3300480., 2888616., 2895888., 2903160.,
      2910432., 2940528., 2947872., 2955216., 2962560., 2560128., 2566656.,
      2573184., 2579712., 2606272., 2612864., 2619456., 2626048., 2233224.,
      2238992., 2244760., 2250528., 2273600., 2279424., 2285248., 2291072.,
      1831963., 1837206., 1842449., 1847692., 1867292., 1872584., 1877876.,
      1883168., 2086784., 2092832., 2098880., 2104928., 2127160., 2133264.,
      2139368., 2145472., 2339547., 2346414., 2353281., 2360148., 2384970.,
      2391900., 2398830., 2405760., 2590140., 2597840., 2605540., 2613240.,
      2640610., 2648380., 2656150., 2663920., 2319009., 2326002., 2332995.,
      2339988., 2364432., 2371488., 2378544., 2385600., 2050272., 2056544.,
      2062816., 2069088., 2090648., 2096976., 2103304., 2109632., 1784041.,
      1789578., 1795115., 1800652., 1819370., 1824956., 1830542., 1836128.,
      1422274., 1427188., 1432102., 1437016., 1452556., 1457512., 1462468.,
      1467424., 1615712., 1621376., 1627040., 1632704., 1650320., 1656032.,
      1661744., 1667456., 1806426., 1812852., 1819278., 1825704., 1845360.,
      1851840., 1858320., 1864800., 1994320., 2001520., 2008720., 2015920.,
      2037580., 2044840., 2052100., 2059360., 1780182., 1786716., 1793250.,
      1799784., 1819116., 1825704., 1832292., 1838880., 1569056., 1574912.,
      1580768., 1586624., 1603664., 1609568., 1615472., 1621376., 1361038.,
      1366204., 1371370., 1376536., 1391320., 1396528., 1401736., 1406944.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      18320., 18608., 18896., 19184., 20060., 20360., 20660.,  20960.,
      19400., 19712., 20024., 20336., 21236., 21560., 21884.,  22208.,
      20480., 20816., 21152., 21488., 22412., 22760., 23108.,  23456.,
      21560., 21920., 22280., 22640., 23588., 23960., 24332.,  24704.,
      22640., 23024., 23408., 23792., 24764., 25160., 25556.,  25952.,
      23720., 24128., 24536., 24944., 25940., 26360., 26780.,  27200.,
      24800., 25232., 25664., 26096., 27116., 27560., 28004.,  28448.,
      29120., 29648., 30176., 30704., 31820., 32360., 32900.,  33440.,
      30200., 30752., 31304., 31856., 32996., 33560., 34124.,  34688.,
      31280., 31856., 32432., 33008., 34172., 34760., 35348.,  35936.,
      32360., 32960., 33560., 34160., 35348., 35960., 36572.,  37184.,
      33440., 34064., 34688., 35312., 36524., 37160., 37796.,  38432.,
      34520., 35168., 35816., 36464., 37700., 38360., 39020.,  39680.,
      35600., 36272., 36944., 37616., 38876., 39560., 40244.,  40928.,
      39920., 40688., 41456., 42224., 43580., 44360., 45140.,  45920.,
      41000., 41792., 42584., 43376., 44756., 45560., 46364.,  47168.,
      42080., 42896., 43712., 44528., 45932., 46760., 47588.,  48416.,
      43160., 44000., 44840., 45680., 47108., 47960., 48812.,  49664.,
      44240., 45104., 45968., 46832., 48284., 49160., 50036.,  50912.,
      45320., 46208., 47096., 47984., 49460., 50360., 51260.,  52160.,
      46400., 47312., 48224., 49136., 50636., 51560., 52484.,  53408.,
      50720., 51728., 52736., 53744., 55340., 56360., 57380.,  58400.,
      51800., 52832., 53864., 54896., 56516., 57560., 58604.,  59648.,
      52880., 53936., 54992., 56048., 57692., 58760., 59828.,  60896.,
      53960., 55040., 56120., 57200., 58868., 59960., 61052.,  62144.,
      55040., 56144., 57248., 58352., 60044., 61160., 62276.,  63392.,
      56120., 57248., 58376., 59504., 61220., 62360., 63500.,  64640.,
      57200., 58352., 59504., 60656., 62396., 63560., 64724.,  65888.,
      61520., 62768., 64016., 65264., 67100., 68360., 69620.,  70880.,
      62600., 63872., 65144., 66416., 68276., 69560., 70844.,  72128.,
      63680., 64976., 66272., 67568., 69452., 70760., 72068.,  73376.,
      64760., 66080., 67400., 68720., 70628., 71960., 73292.,  74624.,
      65840., 67184., 68528., 69872., 71804., 73160., 74516.,  75872.,
      66920., 68288., 69656., 71024., 72980., 74360., 75740.,  77120.,
      68000., 69392., 70784., 72176., 74156., 75560., 76964.,  78368.,
      72320., 73808., 75296., 76784., 78860., 80360., 81860.,  83360.,
      73400., 74912., 76424., 77936., 80036., 81560., 83084.,  84608.,
      74480., 76016., 77552., 79088., 81212., 82760., 84308.,  85856.,
      75560., 77120., 78680., 80240., 82388., 83960., 85532.,  87104.,
      76640., 78224., 79808., 81392., 83564., 85160., 86756.,  88352.,
      77720., 79328., 80936., 82544., 84740., 86360., 87980.,  89600.,
      78800., 80432., 82064., 83696., 85916., 87560., 89204.,  90848.,
      83120., 84848., 86576., 88304., 90620., 92360., 94100.,  95840.,
      84200., 85952., 87704., 89456., 91796., 93560., 95324.,  97088.,
      85280., 87056., 88832., 90608., 92972., 94760., 96548.,  98336.,
      86360., 88160., 89960., 91760., 94148., 95960., 97772.,  99584.,
      87440., 89264., 91088., 92912., 95324., 97160., 98996.,  100832.,
      88520., 90368., 92216., 94064., 96500., 98360., 100220., 102080.,
      89600., 91472., 93344., 95216., 97676., 99560., 101444., 103328.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1361458., 1376536., 1391698., 1406944., 1569392., 1586624., 1603952.,
      1621376., 1780398., 1799784., 1819278., 1838880., 1994380., 2015920.,
      2037580., 2059360., 1806318., 1825704., 1845198., 1864800., 1615472.,
      1632704., 1650032., 1667456., 1421938., 1437016., 1452178., 1467424.,
      1783061., 1800652., 1818341., 1836128., 2048984., 2069088., 2089304.,
      2109632., 2317371., 2339988., 2362731., 2385600., 2588110., 2613240.,
      2638510., 2663920., 2337531., 2360148., 2382891., 2405760., 2084824.,
      2104928., 2125144., 2145472., 1830101., 1847692., 1865381., 1883168.,
      2230424., 2250528., 2270744., 2291072., 2556736., 2579712., 2602816.,
      2626048., 2884584., 2910432., 2936424., 2962560., 3213840., 3242560.,
      3271440., 3300480., 2896104., 2921952., 2947944., 2974080., 2577216.,
      2600192., 2623296., 2646528., 2257304., 2277408., 2297624., 2317952.,
      2692347., 2714964., 2737707., 2760576., 3079848., 3105696., 3131688.,
      3157824., 3467637., 3496716., 3525957., 3555360., 3855570., 3887880.,
      3920370., 3953040., 3467637., 3496716., 3525957., 3555360., 3079848.,
      3105696., 3131688., 3157824., 2692347., 2714964., 2737707., 2760576.,
      2257304., 2277408., 2297624., 2317952., 2577216., 2600192., 2623296.,
      2646528., 2896104., 2921952., 2947944., 2974080., 3213840., 3242560.,
      3271440., 3300480., 2884584., 2910432., 2936424., 2962560., 2556736.,
      2579712., 2602816., 2626048., 2230424., 2250528., 2270744., 2291072.,
      1830101., 1847692., 1865381., 1883168., 2084824., 2104928., 2125144.,
      2145472., 2337531., 2360148., 2382891., 2405760., 2588110., 2613240.,
      2638510., 2663920., 2317371., 2339988., 2362731., 2385600., 2048984.,
      2069088., 2089304., 2109632., 1783061., 1800652., 1818341., 1836128.,
      1421938., 1437016., 1452178., 1467424., 1615472., 1632704., 1650032.,
      1667456., 1806318., 1825704., 1845198., 1864800., 1994380., 2015920.,
      2037580., 2059360., 1780398., 1799784., 1819278., 1838880., 1569392.,
      1586624., 1603952., 1621376., 1361458., 1376536., 1391698., 1406944.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      18332., 19184., 20060.,  20960., 19436., 20336., 21260., 22208.,  20540.,
      21488., 22460., 23456.,  21644., 22640., 23660., 24704., 22748.,  23792.,
      24860., 25952., 23852.,  24944., 26060., 27200., 24956., 26096.,  27260.,
      28448., 29372., 30704.,  32060., 33440., 30476., 31856., 33260.,  34688.,
      31580., 33008., 34460.,  35936., 32684., 34160., 35660., 37184.,  33788.,
      35312., 36860., 38432.,  34892., 36464., 38060., 39680., 35996.,  37616.,
      39260., 40928., 40412.,  42224., 44060., 45920., 41516., 43376.,  45260.,
      47168., 42620., 44528.,  46460., 48416., 43724., 45680., 47660.,  49664.,
      44828., 46832., 48860.,  50912., 45932., 47984., 50060., 52160.,  47036.,
      49136., 51260., 53408.,  51452., 53744., 56060., 58400., 52556.,  54896.,
      57260., 59648., 53660.,  56048., 58460., 60896., 54764., 57200.,  59660.,
      62144., 55868., 58352.,  60860., 63392., 56972., 59504., 62060.,  64640.,
      58076., 60656., 63260.,  65888., 62492., 65264., 68060., 70880.,  63596.,
      66416., 69260., 72128.,  64700., 67568., 70460., 73376., 65804.,  68720.,
      71660., 74624., 66908.,  69872., 72860., 75872., 68012., 71024.,  74060.,
      77120., 69116., 72176.,  75260., 78368., 73532., 76784., 80060.,  83360.,
      74636., 77936., 81260.,  84608., 75740., 79088., 82460., 85856.,  76844.,
      80240., 83660., 87104.,  77948., 81392., 84860., 88352., 79052.,  82544.,
      86060., 89600., 80156.,  83696., 87260., 90848., 84572., 88304.,  92060.,
      95840., 85676., 89456.,  93260., 97088., 86780., 90608., 94460.,  98336.,
      87884., 91760., 95660.,  99584., 88988., 92912., 96860., 100832., 90092.,
      94064., 98060., 102080., 91196., 95216., 99260., 103328.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2718170., 2722916., 2748284., 2753072., 2778566., 2783396., 2809016.,
      2813888., 3133264., 3138784., 3167680., 3173248., 3202288., 3207904.,
      3237088., 3242752., 3554478., 3560796., 3593196., 3599568., 3632130.,
      3638556., 3671280., 3677760., 3981620., 3988760., 4024640., 4031840.,
      4067900., 4075160., 4111400., 4118720., 3606102., 3612636., 3644820.,
      3651408., 3683754., 3690396., 3722904., 3729600., 3225040., 3230944.,
      3259456., 3265408., 3294064., 3300064., 3328864., 3334912., 2838626.,
      2843876., 2868740., 2874032., 2899022., 2904356., 2929472., 2934848.,
      3559605., 3566122., 3594738., 3601304., 3630067., 3636682., 3665592.,
      3672256., 4090408., 4097968., 4130560., 4138176., 4170936., 4178608.,
      4211536., 4219264., 4626111., 4634742., 4671282., 4679976., 4716705.,
      4725462., 4762380., 4771200., 5166490., 5176220., 5216680., 5226480.,
      5267150., 5277020., 5317900., 5327840., 4666179., 4675062., 4711350.,
      4720296., 4756773., 4765782., 4802448., 4811520., 4161640., 4169648.,
      4201792., 4209856., 4242168., 4250288., 4282768., 4290944., 3653097.,
      3660202., 3688230., 3695384., 3723559., 3730762., 3759084., 3766336.,
      4452280., 4460848., 4492432., 4501056., 4532808., 4541488., 4573408.,
      4582144., 5103552., 5113472., 5149440., 5159424., 5195584., 5205632.,
      5241984., 5252096., 5757864., 5769168., 5809488., 5820864., 5861400.,
      5872848., 5913600., 5925120., 6414960., 6427680., 6472320., 6485120.,
      6530000., 6542880., 6588000., 6600960., 5780616., 5792208., 5832240.,
      5843904., 5884152., 5895888., 5936352., 5948160., 5144000., 5154432.,
      5189888., 5200384., 5236032., 5246592., 5282432., 5293056., 4505368.,
      4514608., 4545520., 4554816., 4585896., 4595248., 4626496., 4635904.,
      5373795., 5384694., 5418966., 5429928., 5464389., 5475414., 5510064.,
      5521152., 6147096., 6159696., 6198720., 6211392., 6250632., 6263376.,
      6302832., 6315648., 6920937., 6935274., 6979014., 6993432., 7037415.,
      7051914., 7096140., 7110720., 7695030., 7711140., 7759560., 7775760.,
      7824450., 7840740., 7889700., 7906080., 6920613., 6935274., 6978690.,
      6993432., 7037091., 7051914., 7095816., 7110720., 6146520., 6159696.,
      6198144., 6211392., 6250056., 6263376., 6302256., 6315648., 5373039.,
      5384694., 5418210., 5429928., 5463633., 5475414., 5509308., 5521152.,
      4503800., 4514608., 4543952., 4554816., 4584328., 4595248., 4624928.,
      4635904., 5141952., 5154432., 5187840., 5200384., 5233984., 5246592.,
      5280384., 5293056., 5778024., 5792208., 5829648., 5843904., 5881560.,
      5895888., 5933760., 5948160., 6411760., 6427680., 6469120., 6485120.,
      6526800., 6542880., 6584800., 6600960., 5754696., 5769168., 5806320.,
      5820864., 5858232., 5872848., 5910432., 5925120., 5100480., 5113472.,
      5146368., 5159424., 5192512., 5205632., 5238912., 5252096., 4449368.,
      4460848., 4489520., 4501056., 4529896., 4541488., 4570496., 4582144.,
      3649765., 3660202., 3684898., 3695384., 3720227., 3730762., 3755752.,
      3766336., 4157608., 4169648., 4197760., 4209856., 4238136., 4250288.,
      4278736., 4290944., 4661391., 4675062., 4706562., 4720296., 4751985.,
      4765782., 4797660., 4811520., 5160890., 5176220., 5211080., 5226480.,
      5261550., 5277020., 5312300., 5327840., 4620819., 4634742., 4665990.,
      4679976., 4711413., 4725462., 4757088., 4771200., 4085480., 4097968.,
      4125632., 4138176., 4166008., 4178608., 4206608., 4219264., 3555097.,
      3566122., 3590230., 3601304., 3625559., 3636682., 3661084., 3672256.,
      2834090., 2843876., 2864204., 2874032., 2894486., 2904356., 2924936.,
      2934848., 3219664., 3230944., 3254080., 3265408., 3288688., 3300064.,
      3323488., 3334912., 3599838., 3612636., 3638556., 3651408., 3677490.,
      3690396., 3716640., 3729600., 3974420., 3988760., 4017440., 4031840.,
      4060700., 4075160., 4104200., 4118720., 3547782., 3560796., 3586500.,
      3599568., 3625434., 3638556., 3664584., 3677760., 3127120., 3138784.,
      3161536., 3173248., 3196144., 3207904., 3230944., 3242752., 2712626.,
      2722916., 2742740., 2753072., 2773022., 2783396., 2803472., 2813888.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      36100.,  36664.,  37792.,  38368.,  39532.,  40120.,  41320.,  41920.,
      38260.,  38872.,  40048.,  40672.,  41884.,  42520.,  43768.,  44416.,
      40420.,  41080.,  42304.,  42976.,  44236.,  44920.,  46216.,  46912.,
      42580.,  43288.,  44560.,  45280.,  46588.,  47320.,  48664.,  49408.,
      44740.,  45496.,  46816.,  47584.,  48940.,  49720.,  51112.,  51904.,
      46900.,  47704.,  49072.,  49888.,  51292.,  52120.,  53560.,  54400.,
      49060.,  49912.,  51328.,  52192.,  53644.,  54520.,  56008.,  56896.,
      57700.,  58744.,  60352.,  61408.,  63052.,  64120.,  65800.,  66880.,
      59860.,  60952.,  62608.,  63712.,  65404.,  66520.,  68248.,  69376.,
      62020.,  63160.,  64864.,  66016.,  67756.,  68920.,  70696.,  71872.,
      64180.,  65368.,  67120.,  68320.,  70108.,  71320.,  73144.,  74368.,
      66340.,  67576.,  69376.,  70624.,  72460.,  73720.,  75592.,  76864.,
      68500.,  69784.,  71632.,  72928.,  74812.,  76120.,  78040.,  79360.,
      70660.,  71992.,  73888.,  75232.,  77164.,  78520.,  80488.,  81856.,
      79300.,  80824.,  82912.,  84448.,  86572.,  88120.,  90280.,  91840.,
      81460.,  83032.,  85168.,  86752.,  88924.,  90520.,  92728.,  94336.,
      83620.,  85240.,  87424.,  89056.,  91276.,  92920.,  95176.,  96832.,
      85780.,  87448.,  89680.,  91360.,  93628.,  95320.,  97624.,  99328.,
      87940.,  89656.,  91936.,  93664.,  95980.,  97720.,  100072., 101824.,
      90100.,  91864.,  94192.,  95968.,  98332.,  100120., 102520., 104320.,
      92260.,  94072.,  96448.,  98272.,  100684., 102520., 104968., 106816.,
      100900., 102904., 105472., 107488., 110092., 112120., 114760., 116800.,
      103060., 105112., 107728., 109792., 112444., 114520., 117208., 119296.,
      105220., 107320., 109984., 112096., 114796., 116920., 119656., 121792.,
      107380., 109528., 112240., 114400., 117148., 119320., 122104., 124288.,
      109540., 111736., 114496., 116704., 119500., 121720., 124552., 126784.,
      111700., 113944., 116752., 119008., 121852., 124120., 127000., 129280.,
      113860., 116152., 119008., 121312., 124204., 126520., 129448., 131776.,
      122500., 124984., 128032., 130528., 133612., 136120., 139240., 141760.,
      124660., 127192., 130288., 132832., 135964., 138520., 141688., 144256.,
      126820., 129400., 132544., 135136., 138316., 140920., 144136., 146752.,
      128980., 131608., 134800., 137440., 140668., 143320., 146584., 149248.,
      131140., 133816., 137056., 139744., 143020., 145720., 149032., 151744.,
      133300., 136024., 139312., 142048., 145372., 148120., 151480., 154240.,
      135460., 138232., 141568., 144352., 147724., 150520., 153928., 156736.,
      144100., 147064., 150592., 153568., 157132., 160120., 163720., 166720.,
      146260., 149272., 152848., 155872., 159484., 162520., 166168., 169216.,
      148420., 151480., 155104., 158176., 161836., 164920., 168616., 171712.,
      150580., 153688., 157360., 160480., 164188., 167320., 171064., 174208.,
      152740., 155896., 159616., 162784., 166540., 169720., 173512., 176704.,
      154900., 158104., 161872., 165088., 168892., 172120., 175960., 179200.,
      157060., 160312., 164128., 167392., 171244., 174520., 178408., 181696.,
      165700., 169144., 173152., 176608., 180652., 184120., 188200., 191680.,
      167860., 171352., 175408., 178912., 183004., 186520., 190648., 194176.,
      170020., 173560., 177664., 181216., 185356., 188920., 193096., 196672.,
      172180., 175768., 179920., 183520., 187708., 191320., 195544., 199168.,
      174340., 177976., 182176., 185824., 190060., 193720., 197992., 201664.,
      176500., 180184., 184432., 188128., 192412., 196120., 200440., 204160.,
      178660., 182392., 186688., 190432., 194764., 198520., 202888., 206656.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x9x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5431594.,  5436340.,  5441086.,  5445832.,  5491780.,  5496568.,
      5501356.,  5506144.,  5552302.,  5557132.,  5561962.,  5566792.,
      5613160.,  5618032.,  5622904.,  5627776.,  6261008.,  6266528.,
      6272048.,  6277568.,  6329792.,  6335360.,  6340928.,  6346496.,
      6398960.,  6404576.,  6410192.,  6415808.,  6468512.,  6474176.,
      6479840.,  6485504.,  7102638.,  7108956.,  7115274.,  7121592.,
      7180020.,  7186392.,  7192764.,  7199136.,  7257834.,  7264260.,
      7270686.,  7277112.,  7336080.,  7342560.,  7349040.,  7355520.,
      7956100.,  7963240.,  7970380.,  7977520.,  8042080.,  8049280.,
      8056480.,  8063680.,  8128540.,  8135800.,  8143060.,  8150320.,
      8215480.,  8222800.,  8230120.,  8237440.,  7205670.,  7212204.,
      7218738.,  7225272.,  7283052.,  7289640.,  7296228.,  7302816.,
      7360866.,  7367508.,  7374150.,  7380792.,  7439112.,  7445808.,
      7452504.,  7459200.,  6444176.,  6450080.,  6455984.,  6461888.,
      6512960.,  6518912.,  6524864.,  6530816.,  6582128.,  6588128.,
      6594128.,  6600128.,  6651680.,  6657728.,  6663776.,  6669824.,
      5672002.,  5677252.,  5682502.,  5687752.,  5732188.,  5737480.,
      5742772.,  5748064.,  5792710.,  5798044.,  5803378.,  5808712.,
      5853568.,  5858944.,  5864320.,  5869696.,  7112693.,  7119210.,
      7125727.,  7132244.,  7182910.,  7189476.,  7196042.,  7202608.,
      7253519.,  7260134.,  7266749.,  7273364.,  7324520.,  7331184.,
      7337848.,  7344512.,  8173256.,  8180816.,  8188376.,  8195936.,
      8253504.,  8261120.,  8268736.,  8276352.,  8334200.,  8341872.,
      8349544.,  8357216.,  8415344.,  8423072.,  8430800.,  8438528.,
      9243591.,  9252222.,  9260853.,  9269484.,  9333870.,  9342564.,
      9351258.,  9359952.,  9424653.,  9433410.,  9442167.,  9450924.,
      9515940.,  9524760.,  9533580.,  9542400.,  10323250., 10332980.,
      10342710., 10352440., 10423560., 10433360., 10443160., 10452960.,
      10524430., 10534300., 10544170., 10554040., 10625860., 10635800.,
      10645740., 10655680., 9323475.,  9332358.,  9341241.,  9350124.,
      9413754.,  9422700.,  9431646.,  9440592.,  9504537.,  9513546.,
      9522555.,  9531564.,  9595824.,  9604896.,  9613968.,  9623040.,
      8315272.,  8323280.,  8331288.,  8339296.,  8395520.,  8403584.,
      8411648.,  8419712.,  8476216.,  8484336.,  8492456.,  8500576.,
      8557360.,  8565536.,  8573712.,  8581888.,  7299089.,  7306194.,
      7313299.,  7320404.,  7369306.,  7376460.,  7383614.,  7390768.,
      7439915.,  7447118.,  7454321.,  7461524.,  7510916.,  7518168.,
      7525420.,  7532672.,  8895992.,  8904560.,  8913128.,  8921696.,
      8976240.,  8984864.,  8993488.,  9002112.,  9056936.,  9065616.,
      9074296.,  9082976.,  9138080.,  9146816.,  9155552.,  9164288.,
      10197184., 10207104., 10217024., 10226944., 10288896., 10298880.,
      10308864., 10318848., 10381120., 10391168., 10401216., 10411264.,
      10473856., 10483968., 10494080., 10504192., 11504424., 11515728.,
      11527032., 11538336., 11607600., 11618976., 11630352., 11641728.,
      11711352., 11722800., 11734248., 11745696., 11815680., 11827200.,
      11838720., 11850240., 12817200., 12829920., 12842640., 12855360.,
      12931840., 12944640., 12957440., 12970240., 13047120., 13060000.,
      13072880., 13085760., 13163040., 13176000., 13188960., 13201920.,
      11549640., 11561232., 11572824., 11584416., 11652816., 11664480.,
      11676144., 11687808., 11756568., 11768304., 11780040., 11791776.,
      11860896., 11872704., 11884512., 11896320., 10277568., 10288000.,
      10298432., 10308864., 10369280., 10379776., 10390272., 10400768.,
      10461504., 10472064., 10482624., 10493184., 10554240., 10564864.,
      10575488., 10586112., 9001496.,  9010736.,  9019976.,  9029216.,
      9081744.,  9091040.,  9100336.,  9109632.,  9162440.,  9171792.,
      9181144.,  9190496.,  9243584.,  9252992.,  9262400.,  9271808.,
      10736691., 10747590., 10758489., 10769388., 10826970., 10837932.,
      10848894., 10859856., 10917753., 10928778., 10939803., 10950828.,
      11009040., 11020128., 11031216., 11042304., 12281592., 12294192.,
      12306792., 12319392., 12384768., 12397440., 12410112., 12422784.,
      12488520., 12501264., 12514008., 12526752., 12592848., 12605664.,
      12618480., 12631296., 13827537., 13841874., 13856211., 13870548.,
      13943610., 13958028., 13972446., 13986864., 14060331., 14074830.,
      14089329., 14103828., 14177700., 14192280., 14206860., 14221440.,
      15373950., 15390060., 15406170., 15422280., 15502920., 15519120.,
      15535320., 15551520., 15632610., 15648900., 15665190., 15681480.,
      15763020., 15779400., 15795780., 15812160., 13826565., 13841226.,
      13855887., 13870548., 13942638., 13957380., 13972122., 13986864.,
      14059359., 14074182., 14089005., 14103828., 14176728., 14191632.,
      14206536., 14221440., 12279864., 12293040., 12306216., 12319392.,
      12383040., 12396288., 12409536., 12422784., 12486792., 12500112.,
      12513432., 12526752., 12591120., 12604512., 12617904., 12631296.,
      10734423., 10746078., 10757733., 10769388., 10824702., 10836420.,
      10848138., 10859856., 10915485., 10927266., 10939047., 10950828.,
      11006772., 11018616., 11030460., 11042304., 8996792.,  9007600.,
      9018408.,  9029216.,  9077040.,  9087904.,  9098768.,  9109632.,
      9157736.,  9168656.,  9179576.,  9190496.,  9238880.,  9249856.,
      9260832.,  9271808.,  10271424., 10283904., 10296384., 10308864.,
      10363136., 10375680., 10388224., 10400768., 10455360., 10467968.,
      10480576., 10493184., 10548096., 10560768., 10573440., 10586112.,
      11541864., 11556048., 11570232., 11584416., 11645040., 11659296.,
      11673552., 11687808., 11748792., 11763120., 11777448., 11791776.,
      11853120., 11867520., 11881920., 11896320., 12807600., 12823520.,
      12839440., 12855360., 12922240., 12938240., 12954240., 12970240.,
      13037520., 13053600., 13069680., 13085760., 13153440., 13169600.,
      13185760., 13201920., 11494920., 11509392., 11523864., 11538336.,
      11598096., 11612640., 11627184., 11641728., 11701848., 11716464.,
      11731080., 11745696., 11806176., 11820864., 11835552., 11850240.,
      10187968., 10200960., 10213952., 10226944., 10279680., 10292736.,
      10305792., 10318848., 10371904., 10385024., 10398144., 10411264.,
      10464640., 10477824., 10491008., 10504192., 8887256.,  8898736.,
      8910216.,  8921696.,  8967504.,  8979040.,  8990576.,  9002112.,
      9048200.,  9059792.,  9071384.,  9082976.,  9129344.,  9140992.,
      9152640.,  9164288.,  7289093.,  7299530.,  7309967.,  7320404.,
      7359310.,  7369796.,  7380282.,  7390768.,  7429919.,  7440454.,
      7450989.,  7461524.,  7500920.,  7511504.,  7522088.,  7532672.,
      8303176.,  8315216.,  8327256.,  8339296.,  8383424.,  8395520.,
      8407616.,  8419712.,  8464120.,  8476272.,  8488424.,  8500576.,
      8545264.,  8557472.,  8569680.,  8581888.,  9309111.,  9322782.,
      9336453.,  9350124.,  9399390.,  9413124.,  9426858.,  9440592.,
      9490173.,  9503970.,  9517767.,  9531564.,  9581460.,  9595320.,
      9609180.,  9623040.,  10306450., 10321780., 10337110., 10352440.,
      10406760., 10422160., 10437560., 10452960., 10507630., 10523100.,
      10538570., 10554040., 10609060., 10624600., 10640140., 10655680.,
      9227715.,  9241638.,  9255561.,  9269484.,  9317994.,  9331980.,
      9345966.,  9359952.,  9408777.,  9422826.,  9436875.,  9450924.,
      9500064.,  9514176.,  9528288.,  9542400.,  8158472.,  8170960.,
      8183448.,  8195936.,  8238720.,  8251264.,  8263808.,  8276352.,
      8319416.,  8332016.,  8344616.,  8357216.,  8400560.,  8413216.,
      8425872.,  8438528.,  7099169.,  7110194.,  7121219.,  7132244.,
      7169386.,  7180460.,  7191534.,  7202608.,  7239995.,  7251118.,
      7262241.,  7273364.,  7310996.,  7322168.,  7333340.,  7344512.,
      5658394.,  5668180.,  5677966.,  5687752.,  5718580.,  5728408.,
      5738236.,  5748064.,  5779102.,  5788972.,  5798842.,  5808712.,
      5839960.,  5849872.,  5859784.,  5869696.,  6428048.,  6439328.,
      6450608.,  6461888.,  6496832.,  6508160.,  6519488.,  6530816.,
      6566000.,  6577376.,  6588752.,  6600128.,  6635552.,  6646976.,
      6658400.,  6669824.,  7186878.,  7199676.,  7212474.,  7225272.,
      7264260.,  7277112.,  7289964.,  7302816.,  7342074.,  7354980.,
      7367886.,  7380792.,  7420320.,  7433280.,  7446240.,  7459200.,
      7934500.,  7948840.,  7963180.,  7977520.,  8020480.,  8034880.,
      8049280.,  8063680.,  8106940.,  8121400.,  8135860.,  8150320.,
      8193880.,  8208400.,  8222920.,  8237440.,  7082550.,  7095564.,
      7108578.,  7121592.,  7159932.,  7173000.,  7186068.,  7199136.,
      7237746.,  7250868.,  7263990.,  7277112.,  7315992.,  7329168.,
      7342344.,  7355520.,  6242576.,  6254240.,  6265904.,  6277568.,
      6311360.,  6323072.,  6334784.,  6346496.,  6380528.,  6392288.,
      6404048.,  6415808.,  6450080.,  6461888.,  6473696.,  6485504.,
      5414962.,  5425252.,  5435542.,  5445832.,  5475148.,  5485480.,
      5495812.,  5506144.,  5535670.,  5546044.,  5556418.,  5566792.,
      5596528.,  5606944.,  5617360.,  5627776.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x9x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      71636.,  72200.,  72764.,  73328.,  75008.,  75584.,  76160.,  76736.,
      78476.,  79064.,  79652.,  80240.,  82040.,  82640.,  83240.,  83840.,
      75908.,  76520.,  77132.,  77744.,  79472.,  80096.,  80720.,  81344.,
      83132.,  83768.,  84404.,  85040.,  86888.,  87536.,  88184.,  88832.,
      80180.,  80840.,  81500.,  82160.,  83936.,  84608.,  85280.,  85952.,
      87788.,  88472.,  89156.,  89840.,  91736.,  92432.,  93128.,  93824.,
      84452.,  85160.,  85868.,  86576.,  88400.,  89120.,  89840.,  90560.,
      92444.,  93176.,  93908.,  94640.,  96584.,  97328.,  98072.,  98816.,
      88724.,  89480.,  90236.,  90992.,  92864.,  93632.,  94400.,  95168.,
      97100.,  97880.,  98660.,  99440.,  101432., 102224., 103016., 103808.,
      92996.,  93800.,  94604.,  95408.,  97328.,  98144.,  98960.,  99776.,
      101756., 102584., 103412., 104240., 106280., 107120., 107960., 108800.,
      97268.,  98120.,  98972.,  99824.,  101792., 102656., 103520., 104384.,
      106412., 107288., 108164., 109040., 111128., 112016., 112904., 113792.,
      114356., 115400., 116444., 117488., 119648., 120704., 121760., 122816.,
      125036., 126104., 127172., 128240., 130520., 131600., 132680., 133760.,
      118628., 119720., 120812., 121904., 124112., 125216., 126320., 127424.,
      129692., 130808., 131924., 133040., 135368., 136496., 137624., 138752.,
      122900., 124040., 125180., 126320., 128576., 129728., 130880., 132032.,
      134348., 135512., 136676., 137840., 140216., 141392., 142568., 143744.,
      127172., 128360., 129548., 130736., 133040., 134240., 135440., 136640.,
      139004., 140216., 141428., 142640., 145064., 146288., 147512., 148736.,
      131444., 132680., 133916., 135152., 137504., 138752., 140000., 141248.,
      143660., 144920., 146180., 147440., 149912., 151184., 152456., 153728.,
      135716., 137000., 138284., 139568., 141968., 143264., 144560., 145856.,
      148316., 149624., 150932., 152240., 154760., 156080., 157400., 158720.,
      139988., 141320., 142652., 143984., 146432., 147776., 149120., 150464.,
      152972., 154328., 155684., 157040., 159608., 160976., 162344., 163712.,
      157076., 158600., 160124., 161648., 164288., 165824., 167360., 168896.,
      171596., 173144., 174692., 176240., 179000., 180560., 182120., 183680.,
      161348., 162920., 164492., 166064., 168752., 170336., 171920., 173504.,
      176252., 177848., 179444., 181040., 183848., 185456., 187064., 188672.,
      165620., 167240., 168860., 170480., 173216., 174848., 176480., 178112.,
      180908., 182552., 184196., 185840., 188696., 190352., 192008., 193664.,
      169892., 171560., 173228., 174896., 177680., 179360., 181040., 182720.,
      185564., 187256., 188948., 190640., 193544., 195248., 196952., 198656.,
      174164., 175880., 177596., 179312., 182144., 183872., 185600., 187328.,
      190220., 191960., 193700., 195440., 198392., 200144., 201896., 203648.,
      178436., 180200., 181964., 183728., 186608., 188384., 190160., 191936.,
      194876., 196664., 198452., 200240., 203240., 205040., 206840., 208640.,
      182708., 184520., 186332., 188144., 191072., 192896., 194720., 196544.,
      199532., 201368., 203204., 205040., 208088., 209936., 211784., 213632.,
      199796., 201800., 203804., 205808., 208928., 210944., 212960., 214976.,
      218156., 220184., 222212., 224240., 227480., 229520., 231560., 233600.,
      204068., 206120., 208172., 210224., 213392., 215456., 217520., 219584.,
      222812., 224888., 226964., 229040., 232328., 234416., 236504., 238592.,
      208340., 210440., 212540., 214640., 217856., 219968., 222080., 224192.,
      227468., 229592., 231716., 233840., 237176., 239312., 241448., 243584.,
      212612., 214760., 216908., 219056., 222320., 224480., 226640., 228800.,
      232124., 234296., 236468., 238640., 242024., 244208., 246392., 248576.,
      216884., 219080., 221276., 223472., 226784., 228992., 231200., 233408.,
      236780., 239000., 241220., 243440., 246872., 249104., 251336., 253568.,
      221156., 223400., 225644., 227888., 231248., 233504., 235760., 238016.,
      241436., 243704., 245972., 248240., 251720., 254000., 256280., 258560.,
      225428., 227720., 230012., 232304., 235712., 238016., 240320., 242624.,
      246092., 248408., 250724., 253040., 256568., 258896., 261224., 263552.,
      242516., 245000., 247484., 249968., 253568., 256064., 258560., 261056.,
      264716., 267224., 269732., 272240., 275960., 278480., 281000., 283520.,
      246788., 249320., 251852., 254384., 258032., 260576., 263120., 265664.,
      269372., 271928., 274484., 277040., 280808., 283376., 285944., 288512.,
      251060., 253640., 256220., 258800., 262496., 265088., 267680., 270272.,
      274028., 276632., 279236., 281840., 285656., 288272., 290888., 293504.,
      255332., 257960., 260588., 263216., 266960., 269600., 272240., 274880.,
      278684., 281336., 283988., 286640., 290504., 293168., 295832., 298496.,
      259604., 262280., 264956., 267632., 271424., 274112., 276800., 279488.,
      283340., 286040., 288740., 291440., 295352., 298064., 300776., 303488.,
      263876., 266600., 269324., 272048., 275888., 278624., 281360., 284096.,
      287996., 290744., 293492., 296240., 300200., 302960., 305720., 308480.,
      268148., 270920., 273692., 276464., 280352., 283136., 285920., 288704.,
      292652., 295448., 298244., 301040., 305048., 307856., 310664., 313472.,
      285236., 288200., 291164., 294128., 298208., 301184., 304160., 307136.,
      311276., 314264., 317252., 320240., 324440., 327440., 330440., 333440.,
      289508., 292520., 295532., 298544., 302672., 305696., 308720., 311744.,
      315932., 318968., 322004., 325040., 329288., 332336., 335384., 338432.,
      293780., 296840., 299900., 302960., 307136., 310208., 313280., 316352.,
      320588., 323672., 326756., 329840., 334136., 337232., 340328., 343424.,
      298052., 301160., 304268., 307376., 311600., 314720., 317840., 320960.,
      325244., 328376., 331508., 334640., 338984., 342128., 345272., 348416.,
      302324., 305480., 308636., 311792., 316064., 319232., 322400., 325568.,
      329900., 333080., 336260., 339440., 343832., 347024., 350216., 353408.,
      306596., 309800., 313004., 316208., 320528., 323744., 326960., 330176.,
      334556., 337784., 341012., 344240., 348680., 351920., 355160., 358400.,
      310868., 314120., 317372., 320624., 324992., 328256., 331520., 334784.,
      339212., 342488., 345764., 349040., 353528., 356816., 360104., 363392.,
      327956., 331400., 334844., 338288., 342848., 346304., 349760., 353216.,
      357836., 361304., 364772., 368240., 372920., 376400., 379880., 383360.,
      332228., 335720., 339212., 342704., 347312., 350816., 354320., 357824.,
      362492., 366008., 369524., 373040., 377768., 381296., 384824., 388352.,
      336500., 340040., 343580., 347120., 351776., 355328., 358880., 362432.,
      367148., 370712., 374276., 377840., 382616., 386192., 389768., 393344.,
      340772., 344360., 347948., 351536., 356240., 359840., 363440., 367040.,
      371804., 375416., 379028., 382640., 387464., 391088., 394712., 398336.,
      345044., 348680., 352316., 355952., 360704., 364352., 368000., 371648.,
      376460., 380120., 383780., 387440., 392312., 395984., 399656., 403328.,
      349316., 353000., 356684., 360368., 365168., 368864., 372560., 376256.,
      381116., 384824., 388532., 392240., 397160., 400880., 404600., 408320.,
      353588., 357320., 361052., 364784., 369632., 373376., 377120., 380864.,
      385772., 389528., 393284., 397040., 402008., 405776., 409544., 413312.};
  const std::array<int, 4> in_shape = {{1, 9, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      60060.,  72667.,  85456.,  98420.,  86632.,  74683.,  62580.,
      75520.,  91112.,  106848., 122720., 107744., 92648.,  77440.,
      91740.,  110421., 129192., 148044., 129696., 111285., 92820.,
      108400., 130210., 152040., 173880., 152040., 130210., 108400.,
      92820.,  111285., 129696., 148044., 129192., 110421., 91740.,
      77440.,  92648.,  107744., 122720., 106848., 91112.,  75520.,
      62580.,  74683.,  86632.,  98420.,  85456.,  72667.,  60060.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      648.,  684.,  720.,  756.,  792.,  828.,  864.,  936.,  972.,  1008.,
      1044., 1080., 1116., 1152., 1224., 1260., 1296., 1332., 1368., 1404.,
      1440., 1512., 1548., 1584., 1620., 1656., 1692., 1728., 1800., 1836.,
      1872., 1908., 1944., 1980., 2016., 2088., 2124., 2160., 2196., 2232.,
      2268., 2304., 2376., 2412., 2448., 2484., 2520., 2556., 2592.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      119175., 120120., 144179., 145334., 169540., 170912., 195244., 196840.,
      171843., 173264., 148127., 149366., 124110., 125160., 149800., 151040.,
      180712., 182224., 211904., 213696., 243360., 245440., 213640., 215488.,
      183688., 185296., 153520., 154880., 181905., 183480., 218925., 220842.,
      256116., 258384., 293460., 296088., 257061., 259392., 220545., 222570.,
      183930., 185640., 214850., 216800., 258050., 260420., 301280., 304080.,
      344520., 347760., 301210., 304080., 257930., 260420., 214700., 216800.,
      183705., 185640., 220221., 222570., 256620., 259392., 292884., 296088.,
      255549., 258384., 218385., 220842., 181410., 183480., 153000., 154880.,
      183016., 185296., 212800., 215488., 242336., 245440., 210952., 213696.,
      179848., 182224., 149040., 151040., 123375., 125160., 147203., 149366.,
      170716., 173264., 193900., 196840., 168315., 170912., 143087., 145334.,
      118230., 120120.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1188., 1296., 1252., 1368., 1316., 1440., 1380., 1512., 1444., 1584.,
      1508., 1656., 1572., 1728., 1700., 1872., 1764., 1944., 1828., 2016.,
      1892., 2088., 1956., 2160., 2020., 2232., 2084., 2304., 2212., 2448.,
      2276., 2520., 2340., 2592., 2404., 2664., 2468., 2736., 2532., 2808.,
      2596., 2880., 2724., 3024., 2788., 3096., 2852., 3168., 2916., 3240.,
      2980., 3312., 3044., 3384., 3108., 3456., 3236., 3600., 3300., 3672.,
      3364., 3744., 3428., 3816., 3492., 3888., 3556., 3960., 3620., 4032.,
      3748., 4176., 3812., 4248., 3876., 4320., 3940., 4392., 4004., 4464.,
      4068., 4536., 4132., 4608., 4260., 4752., 4324., 4824., 4388., 4896.,
      4452., 4968., 4516., 5040., 4580., 5112., 4644., 5184.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      237405., 238350., 239295., 240240., 287203., 288358., 289513., 290668.,
      337708., 339080., 340452., 341824., 388892., 390488., 392084., 393680.,
      342265., 343686., 345107., 346528., 295015., 296254., 297493., 298732.,
      247170., 248220., 249270., 250320., 298360., 299600., 300840., 302080.,
      359912., 361424., 362936., 364448., 422016., 423808., 425600., 427392.,
      484640., 486720., 488800., 490880., 425432., 427280., 429128., 430976.,
      365768., 367376., 368984., 370592., 305680., 307040., 308400., 309760.,
      362235., 363810., 365385., 366960., 435933., 437850., 439767., 441684.,
      509964., 512232., 514500., 516768., 584292., 586920., 589548., 592176.,
      511791., 514122., 516453., 518784., 439065., 441090., 443115., 445140.,
      366150., 367860., 369570., 371280., 427750., 429700., 431650., 433600.,
      513730., 516100., 518470., 520840., 599760., 602560., 605360., 608160.,
      685800., 689040., 692280., 695520., 599550., 602420., 605290., 608160.,
      513370., 515860., 518350., 520840., 427300., 429400., 431500., 433600.,
      365475., 367410., 369345., 371280., 438093., 440442., 442791., 445140.,
      510468., 513240., 516012., 518784., 582564., 585768., 588972., 592176.,
      508263., 511098., 513933., 516768., 434313., 436770., 439227., 441684.,
      360750., 362820., 364890., 366960., 304120., 306000., 307880., 309760.,
      363752., 366032., 368312., 370592., 422912., 425600., 428288., 430976.,
      481568., 484672., 487776., 490880., 419160., 421904., 424648., 427392.,
      357320., 359696., 362072., 364448., 296080., 298080., 300080., 302080.,
      244965., 246750., 248535., 250320., 292243., 294406., 296569., 298732.,
      338884., 341432., 343980., 346528., 384860., 387800., 390740., 393680.,
      334033., 336630., 339227., 341824., 283927., 286174., 288421., 290668.,
      234570., 236460., 238350., 240240.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2268., 2376.,  2484., 2592., 2388., 2504., 2620., 2736.,  2508., 2632.,
      2756., 2880.,  2628., 2760., 2892., 3024., 2748., 2888.,  3028., 3168.,
      2868., 3016.,  3164., 3312., 2988., 3144., 3300., 3456.,  3228., 3400.,
      3572., 3744.,  3348., 3528., 3708., 3888., 3468., 3656.,  3844., 4032.,
      3588., 3784.,  3980., 4176., 3708., 3912., 4116., 4320.,  3828., 4040.,
      4252., 4464.,  3948., 4168., 4388., 4608., 4188., 4424.,  4660., 4896.,
      4308., 4552.,  4796., 5040., 4428., 4680., 4932., 5184.,  4548., 4808.,
      5068., 5328.,  4668., 4936., 5204., 5472., 4788., 5064.,  5340., 5616.,
      4908., 5192.,  5476., 5760., 5148., 5448., 5748., 6048.,  5268., 5576.,
      5884., 6192.,  5388., 5704., 6020., 6336., 5508., 5832.,  6156., 6480.,
      5628., 5960.,  6292., 6624., 5748., 6088., 6428., 6768.,  5868., 6216.,
      6564., 6912.,  6108., 6472., 6836., 7200., 6228., 6600.,  6972., 7344.,
      6348., 6728.,  7108., 7488., 6468., 6856., 7244., 7632.,  6588., 6984.,
      7380., 7776.,  6708., 7112., 7516., 7920., 6828., 7240.,  7652., 8064.,
      7068., 7496.,  7924., 8352., 7188., 7624., 8060., 8496.,  7308., 7752.,
      8196., 8640.,  7428., 7880., 8332., 8784., 7548., 8008.,  8468., 8928.,
      7668., 8136.,  8604., 9072., 7788., 8264., 8740., 9216.,  8028., 8520.,
      9012., 9504.,  8148., 8648., 9148., 9648., 8268., 8776.,  9284., 9792.,
      8388., 8904.,  9420., 9936., 8508., 9032., 9556., 10080., 8628., 9160.,
      9692., 10224., 8748., 9288., 9828., 10368.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      234605., 240240., 283906., 290668., 333935., 341824., 384664., 393680.,
      338639., 346528., 291970., 298732., 244685., 250320., 295640., 302080.,
      356720., 364448., 418376., 427392., 480576., 490880., 421960., 430976.,
      362864., 370592., 303320., 309760., 359715., 366960., 432990., 441684.,
      506625., 516768., 580584., 592176., 508641., 518784., 436446., 445140.,
      364035., 371280., 425550., 433600., 511180., 520840., 596890., 608160.,
      682640., 695520., 596890., 608160., 511180., 520840., 425550., 433600.,
      364035., 371280., 436446., 445140., 508641., 518784., 580584., 592176.,
      506625., 516768., 432990., 441684., 359715., 366960., 303320., 309760.,
      362864., 370592., 421960., 430976., 480576., 490880., 418376., 427392.,
      356720., 364448., 295640., 302080., 244685., 250320., 291970., 298732.,
      338639., 346528., 384664., 393680., 333935., 341824., 283906., 290668.,
      234605., 240240.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2312., 2592., 2440., 2736.,  2568., 2880.,  2696., 3024., 2824., 3168.,
      2952., 3312., 3080., 3456.,  3336., 3744.,  3464., 3888., 3592., 4032.,
      3720., 4176., 3848., 4320.,  3976., 4464.,  4104., 4608., 4360., 4896.,
      4488., 5040., 4616., 5184.,  4744., 5328.,  4872., 5472., 5000., 5616.,
      5128., 5760., 5384., 6048.,  5512., 6192.,  5640., 6336., 5768., 6480.,
      5896., 6624., 6024., 6768.,  6152., 6912.,  6408., 7200., 6536., 7344.,
      6664., 7488., 6792., 7632.,  6920., 7776.,  7048., 7920., 7176., 8064.,
      7432., 8352., 7560., 8496.,  7688., 8640.,  7816., 8784., 7944., 8928.,
      8072., 9072., 8200., 9216.,  8456., 9504.,  8584., 9648., 8712., 9792.,
      8840., 9936., 8968., 10080., 9096., 10224., 9224., 10368.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      467355.,  469210.,  478590.,  480480.,  565544.,  567812.,  579026.,
      581336.,  665175.,  667870.,  680904.,  683648.,  766192.,  769328.,
      784168.,  787360.,  674485.,  677278.,  690214.,  693056.,  581504.,
      583940.,  594986.,  597464.,  487305.,  489370.,  498540.,  500640.,
      588840.,  591280.,  601680.,  604160.,  710464.,  713440.,  725872.,
      728896.,  833224.,  836752.,  851200.,  854784.,  957056.,  961152.,
      977600.,  981760.,  840280.,  843920.,  858256.,  861952.,  722560.,
      725728.,  737968.,  741184.,  603960.,  606640.,  616800.,  619520.,
      716325.,  719430.,  730770.,  733920.,  862200.,  865980.,  879534.,
      883368.,  1008777., 1013250., 1029000., 1033536., 1155984., 1161168.,
      1179096., 1184352., 1012683., 1017282., 1032906., 1037568., 868896.,
      872892.,  886230.,  890280.,  724695.,  728070.,  739140.,  742560.,
      847250.,  851100.,  863300.,  867200.,  1017680., 1022360., 1036940.,
      1041680., 1188250., 1193780., 1210720., 1216320., 1358880., 1365280.,
      1384560., 1391040., 1188110., 1193780., 1210580., 1216320., 1017440.,
      1022360., 1036700., 1041680., 846950.,  851100.,  863000.,  867200.,
      724245.,  728070.,  738690.,  742560.,  868248.,  872892.,  885582.,
      890280.,  1011801., 1017282., 1032024., 1037568., 1154832., 1161168.,
      1177944., 1184352., 1007643., 1013250., 1027866., 1033536., 861120.,
      865980.,  878454.,  883368.,  715335.,  719430.,  729780.,  733920.,
      602920.,  606640.,  615760.,  619520.,  721216.,  725728.,  736624.,
      741184.,  838600.,  843920.,  856576.,  861952.,  955008.,  961152.,
      975552.,  981760.,  831320.,  836752.,  849296.,  854784.,  708736.,
      713440.,  724144.,  728896.,  587320.,  591280.,  600160.,  604160.,
      485835.,  489370.,  497070.,  500640.,  579656.,  583940.,  593138.,
      597464.,  672231.,  677278.,  687960.,  693056.,  763504.,  769328.,
      781480.,  787360.,  662725.,  667870.,  678454.,  683648.,  563360.,
      567812.,  576842.,  581336.,  465465.,  469210.,  476700.,  480480.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4416.,  4624.,  4968.,  5184.,  4656.,  4880.,  5240.,  5472.,  4896.,
      5136.,  5512.,  5760.,  5136.,  5392.,  5784.,  6048.,  5376.,  5648.,
      6056.,  6336.,  5616.,  5904.,  6328.,  6624.,  5856.,  6160.,  6600.,
      6912.,  6336.,  6672.,  7144.,  7488.,  6576.,  6928.,  7416.,  7776.,
      6816.,  7184.,  7688.,  8064.,  7056.,  7440.,  7960.,  8352.,  7296.,
      7696.,  8232.,  8640.,  7536.,  7952.,  8504.,  8928.,  7776.,  8208.,
      8776.,  9216.,  8256.,  8720.,  9320.,  9792.,  8496.,  8976.,  9592.,
      10080., 8736.,  9232.,  9864.,  10368., 8976.,  9488.,  10136., 10656.,
      9216.,  9744.,  10408., 10944., 9456.,  10000., 10680., 11232., 9696.,
      10256., 10952., 11520., 10176., 10768., 11496., 12096., 10416., 11024.,
      11768., 12384., 10656., 11280., 12040., 12672., 10896., 11536., 12312.,
      12960., 11136., 11792., 12584., 13248., 11376., 12048., 12856., 13536.,
      11616., 12304., 13128., 13824., 12096., 12816., 13672., 14400., 12336.,
      13072., 13944., 14688., 12576., 13328., 14216., 14976., 12816., 13584.,
      14488., 15264., 13056., 13840., 14760., 15552., 13296., 14096., 15032.,
      15840., 13536., 14352., 15304., 16128., 14016., 14864., 15848., 16704.,
      14256., 15120., 16120., 16992., 14496., 15376., 16392., 17280., 14736.,
      15632., 16664., 17568., 14976., 15888., 16936., 17856., 15216., 16144.,
      17208., 18144., 15456., 16400., 17480., 18432., 15936., 16912., 18024.,
      19008., 16176., 17168., 18296., 19296., 16416., 17424., 18568., 19584.,
      16656., 17680., 18840., 19872., 16896., 17936., 19112., 20160., 17136.,
      18192., 19384., 20448., 17376., 18448., 19656., 20736.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      932855.,  934710.,  936565.,  938420.,  955290.,  957180.,  959070.,
      960960.,  1128820., 1131088., 1133356., 1135624., 1155742., 1158052.,
      1160362., 1162672., 1327655., 1330350., 1333045., 1335740., 1359064.,
      1361808., 1364552., 1367296., 1529248., 1532384., 1535520., 1538656.,
      1565144., 1568336., 1571528., 1574720., 1346177., 1348970., 1351763.,
      1354556., 1377586., 1380428., 1383270., 1386112., 1160572., 1163008.,
      1165444., 1167880., 1187494., 1189972., 1192450., 1194928., 972545.,
      974610.,  976675.,  978740.,  994980.,  997080.,  999180.,  1001280.,
      1175240., 1177680., 1180120., 1182560., 1200880., 1203360., 1205840.,
      1208320., 1417952., 1420928., 1423904., 1426880., 1448720., 1451744.,
      1454768., 1457792., 1662920., 1666448., 1669976., 1673504., 1698816.,
      1702400., 1705984., 1709568., 1910016., 1914112., 1918208., 1922304.,
      1951040., 1955200., 1959360., 1963520., 1676920., 1680560., 1684200.,
      1687840., 1712816., 1716512., 1720208., 1723904., 1441952., 1445120.,
      1448288., 1451456., 1472720., 1475936., 1479152., 1482368., 1205240.,
      1207920., 1210600., 1213280., 1230880., 1233600., 1236320., 1239040.,
      1429545., 1432650., 1435755., 1438860., 1458390., 1461540., 1464690.,
      1467840., 1720620., 1724400., 1728180., 1731960., 1755234., 1759068.,
      1762902., 1766736., 2013081., 2017554., 2022027., 2026500., 2053464.,
      2058000., 2062536., 2067072., 2306784., 2311968., 2317152., 2322336.,
      2352936., 2358192., 2363448., 2368704., 2020767., 2025366., 2029965.,
      2034564., 2061150., 2065812., 2070474., 2075136., 1733796., 1737792.,
      1741788., 1745784., 1768410., 1772460., 1776510., 1780560., 1446015.,
      1449390., 1452765., 1456140., 1474860., 1478280., 1481700., 1485120.,
      1690650., 1694500., 1698350., 1702200., 1722700., 1726600., 1730500.,
      1734400., 2030680., 2035360., 2040040., 2044720., 2069140., 2073880.,
      2078620., 2083360., 2370970., 2376500., 2382030., 2387560., 2415840.,
      2421440., 2427040., 2432640., 2711360., 2717760., 2724160., 2730560.,
      2762640., 2769120., 2775600., 2782080., 2370550., 2376220., 2381890.,
      2387560., 2415420., 2421160., 2426900., 2432640., 2029960., 2034880.,
      2039800., 2044720., 2068420., 2073400., 2078380., 2083360., 1689750.,
      1693900., 1698050., 1702200., 1721800., 1726000., 1730200., 1734400.,
      1444665., 1448490., 1452315., 1456140., 1473510., 1477380., 1481250.,
      1485120., 1731852., 1736496., 1741140., 1745784., 1766466., 1771164.,
      1775862., 1780560., 2018121., 2023602., 2029083., 2034564., 2058504.,
      2064048., 2069592., 2075136., 2303328., 2309664., 2316000., 2322336.,
      2349480., 2355888., 2362296., 2368704., 2009679., 2015286., 2020893.,
      2026500., 2050062., 2055732., 2061402., 2067072., 1717380., 1722240.,
      1727100., 1731960., 1751994., 1756908., 1761822., 1766736., 1426575.,
      1430670., 1434765., 1438860., 1455420., 1459560., 1463700., 1467840.,
      1202120., 1205840., 1209560., 1213280., 1227760., 1231520., 1235280.,
      1239040., 1437920., 1442432., 1446944., 1451456., 1468688., 1473248.,
      1477808., 1482368., 1671880., 1677200., 1682520., 1687840., 1707776.,
      1713152., 1718528., 1723904., 1903872., 1910016., 1916160., 1922304.,
      1944896., 1951104., 1957312., 1963520., 1657208., 1662640., 1668072.,
      1673504., 1693104., 1698592., 1704080., 1709568., 1412768., 1417472.,
      1422176., 1426880., 1443536., 1448288., 1453040., 1457792., 1170680.,
      1174640., 1178600., 1182560., 1196320., 1200320., 1204320., 1208320.,
      968135.,  971670.,  975205.,  978740.,  990570.,  994140.,  997710.,
      1001280., 1155028., 1159312., 1163596., 1167880., 1181950., 1186276.,
      1190602., 1194928., 1339415., 1344462., 1349509., 1354556., 1370824.,
      1375920., 1381016., 1386112., 1521184., 1527008., 1532832., 1538656.,
      1557080., 1562960., 1568840., 1574720., 1320305., 1325450., 1330595.,
      1335740., 1351714., 1356908., 1362102., 1367296., 1122268., 1126720.,
      1131172., 1135624., 1149190., 1153684., 1158178., 1162672., 927185.,
      930930.,  934675.,  938420.,  949620.,  953400.,  957180.,  960960.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8624.,  8832.,  9040.,  9248.,  9720.,  9936.,  10152., 10368., 9088.,
      9312.,  9536.,  9760.,  10248., 10480., 10712., 10944., 9552.,  9792.,
      10032., 10272., 10776., 11024., 11272., 11520., 10016., 10272., 10528.,
      10784., 11304., 11568., 11832., 12096., 10480., 10752., 11024., 11296.,
      11832., 12112., 12392., 12672., 10944., 11232., 11520., 11808., 12360.,
      12656., 12952., 13248., 11408., 11712., 12016., 12320., 12888., 13200.,
      13512., 13824., 12336., 12672., 13008., 13344., 13944., 14288., 14632.,
      14976., 12800., 13152., 13504., 13856., 14472., 14832., 15192., 15552.,
      13264., 13632., 14000., 14368., 15000., 15376., 15752., 16128., 13728.,
      14112., 14496., 14880., 15528., 15920., 16312., 16704., 14192., 14592.,
      14992., 15392., 16056., 16464., 16872., 17280., 14656., 15072., 15488.,
      15904., 16584., 17008., 17432., 17856., 15120., 15552., 15984., 16416.,
      17112., 17552., 17992., 18432., 16048., 16512., 16976., 17440., 18168.,
      18640., 19112., 19584., 16512., 16992., 17472., 17952., 18696., 19184.,
      19672., 20160., 16976., 17472., 17968., 18464., 19224., 19728., 20232.,
      20736., 17440., 17952., 18464., 18976., 19752., 20272., 20792., 21312.,
      17904., 18432., 18960., 19488., 20280., 20816., 21352., 21888., 18368.,
      18912., 19456., 20000., 20808., 21360., 21912., 22464., 18832., 19392.,
      19952., 20512., 21336., 21904., 22472., 23040., 19760., 20352., 20944.,
      21536., 22392., 22992., 23592., 24192., 20224., 20832., 21440., 22048.,
      22920., 23536., 24152., 24768., 20688., 21312., 21936., 22560., 23448.,
      24080., 24712., 25344., 21152., 21792., 22432., 23072., 23976., 24624.,
      25272., 25920., 21616., 22272., 22928., 23584., 24504., 25168., 25832.,
      26496., 22080., 22752., 23424., 24096., 25032., 25712., 26392., 27072.,
      22544., 23232., 23920., 24608., 25560., 26256., 26952., 27648., 23472.,
      24192., 24912., 25632., 26616., 27344., 28072., 28800., 23936., 24672.,
      25408., 26144., 27144., 27888., 28632., 29376., 24400., 25152., 25904.,
      26656., 27672., 28432., 29192., 29952., 24864., 25632., 26400., 27168.,
      28200., 28976., 29752., 30528., 25328., 26112., 26896., 27680., 28728.,
      29520., 30312., 31104., 25792., 26592., 27392., 28192., 29256., 30064.,
      30872., 31680., 26256., 27072., 27888., 28704., 29784., 30608., 31432.,
      32256., 27184., 28032., 28880., 29728., 30840., 31696., 32552., 33408.,
      27648., 28512., 29376., 30240., 31368., 32240., 33112., 33984., 28112.,
      28992., 29872., 30752., 31896., 32784., 33672., 34560., 28576., 29472.,
      30368., 31264., 32424., 33328., 34232., 35136., 29040., 29952., 30864.,
      31776., 32952., 33872., 34792., 35712., 29504., 30432., 31360., 32288.,
      33480., 34416., 35352., 36288., 29968., 30912., 31856., 32800., 34008.,
      34960., 35912., 36864., 30896., 31872., 32848., 33824., 35064., 36048.,
      37032., 38016., 31360., 32352., 33344., 34336., 35592., 36592., 37592.,
      38592., 31824., 32832., 33840., 34848., 36120., 37136., 38152., 39168.,
      32288., 33312., 34336., 35360., 36648., 37680., 38712., 39744., 32752.,
      33792., 34832., 35872., 37176., 38224., 39272., 40320., 33216., 34272.,
      35328., 36384., 37704., 38768., 39832., 40896., 33680., 34752., 35824.,
      36896., 38232., 39312., 40392., 41472.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      927255.,  938420.,  949655.,  960960.,  1122226., 1135624., 1149106.,
      1162672., 1320109., 1335740., 1351469., 1367296., 1520792., 1538656.,
      1556632., 1574720., 1338925., 1354556., 1370285., 1386112., 1154482.,
      1167880., 1181362., 1194928., 967575.,  978740.,  989975.,  1001280.,
      1169800., 1182560., 1195400., 1208320., 1411568., 1426880., 1442288.,
      1457792., 1655640., 1673504., 1691480., 1709568., 1901888., 1922304.,
      1942848., 1963520., 1669976., 1687840., 1705816., 1723904., 1436144.,
      1451456., 1466864., 1482368., 1200520., 1213280., 1226120., 1239040.,
      1424505., 1438860., 1453305., 1467840., 1714734., 1731960., 1749294.,
      1766736., 2006403., 2026500., 2046723., 2067072., 2299368., 2322336.,
      2345448., 2368704., 2014467., 2034564., 2054787., 2075136., 1728558.,
      1745784., 1763118., 1780560., 1441785., 1456140., 1470585., 1485120.,
      1686250., 1702200., 1718250., 1734400., 2025580., 2044720., 2063980.,
      2083360., 2365230., 2387560., 2410030., 2432640., 2705040., 2730560.,
      2756240., 2782080., 2365230., 2387560., 2410030., 2432640., 2025580.,
      2044720., 2063980., 2083360., 1686250., 1702200., 1718250., 1734400.,
      1441785., 1456140., 1470585., 1485120., 1728558., 1745784., 1763118.,
      1780560., 2014467., 2034564., 2054787., 2075136., 2299368., 2322336.,
      2345448., 2368704., 2006403., 2026500., 2046723., 2067072., 1714734.,
      1731960., 1749294., 1766736., 1424505., 1438860., 1453305., 1467840.,
      1200520., 1213280., 1226120., 1239040., 1436144., 1451456., 1466864.,
      1482368., 1669976., 1687840., 1705816., 1723904., 1901888., 1922304.,
      1942848., 1963520., 1655640., 1673504., 1691480., 1709568., 1411568.,
      1426880., 1442288., 1457792., 1169800., 1182560., 1195400., 1208320.,
      967575.,  978740.,  989975.,  1001280., 1154482., 1167880., 1181362.,
      1194928., 1338925., 1354556., 1370285., 1386112., 1520792., 1538656.,
      1556632., 1574720., 1320109., 1335740., 1351469., 1367296., 1122226.,
      1135624., 1149106., 1162672., 927255.,  938420.,  949655.,  960960.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8712.,  9248.,  9800.,  10368., 9192.,  9760.,  10344., 10944., 9672.,
      10272., 10888., 11520., 10152., 10784., 11432., 12096., 10632., 11296.,
      11976., 12672., 11112., 11808., 12520., 13248., 11592., 12320., 13064.,
      13824., 12552., 13344., 14152., 14976., 13032., 13856., 14696., 15552.,
      13512., 14368., 15240., 16128., 13992., 14880., 15784., 16704., 14472.,
      15392., 16328., 17280., 14952., 15904., 16872., 17856., 15432., 16416.,
      17416., 18432., 16392., 17440., 18504., 19584., 16872., 17952., 19048.,
      20160., 17352., 18464., 19592., 20736., 17832., 18976., 20136., 21312.,
      18312., 19488., 20680., 21888., 18792., 20000., 21224., 22464., 19272.,
      20512., 21768., 23040., 20232., 21536., 22856., 24192., 20712., 22048.,
      23400., 24768., 21192., 22560., 23944., 25344., 21672., 23072., 24488.,
      25920., 22152., 23584., 25032., 26496., 22632., 24096., 25576., 27072.,
      23112., 24608., 26120., 27648., 24072., 25632., 27208., 28800., 24552.,
      26144., 27752., 29376., 25032., 26656., 28296., 29952., 25512., 27168.,
      28840., 30528., 25992., 27680., 29384., 31104., 26472., 28192., 29928.,
      31680., 26952., 28704., 30472., 32256., 27912., 29728., 31560., 33408.,
      28392., 30240., 32104., 33984., 28872., 30752., 32648., 34560., 29352.,
      31264., 33192., 35136., 29832., 31776., 33736., 35712., 30312., 32288.,
      34280., 36288., 30792., 32800., 34824., 36864., 31752., 33824., 35912.,
      38016., 32232., 34336., 36456., 38592., 32712., 34848., 37000., 39168.,
      33192., 35360., 37544., 39744., 33672., 35872., 38088., 40320., 34152.,
      36384., 38632., 40896., 34632., 36896., 39176., 41472.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1850835., 1854510., 1873130., 1876840., 1895565., 1899310., 1918140.,
      1921920., 2239958., 2244452., 2266712., 2271248., 2293634., 2298212.,
      2320724., 2325344., 2634877., 2640218., 2666090., 2671480., 2697499.,
      2702938., 2729104., 2734592., 3035368., 3041584., 3071040., 3077312.,
      3106936., 3113264., 3143056., 3149440., 2672313., 2677850., 2703526.,
      2709112., 2734935., 2740570., 2766540., 2772224., 2304134., 2308964.,
      2330888., 2335760., 2357810., 2362724., 2384900., 2389856., 1931055.,
      1935150., 1953350., 1957480., 1975785., 1979950., 1998360., 2002560.,
      2334760., 2339600., 2360240., 2365120., 2385880., 2390800., 2411680.,
      2416640., 2817232., 2823136., 2847808., 2853760., 2878576., 2884576.,
      2909536., 2915584., 3304280., 3311280., 3339952., 3347008., 3375848.,
      3382960., 3411968., 3419136., 3795648., 3803776., 3836416., 3844608.,
      3877440., 3885696., 3918720., 3927040., 3332728., 3339952., 3368400.,
      3375680., 3404296., 3411632., 3440416., 3447808., 2866000., 2872288.,
      2896576., 2902912., 2927344., 2933728., 2958304., 2964736., 2395720.,
      2401040., 2421200., 2426560., 2446840., 2452240., 2472640., 2478080.,
      2842845., 2849010., 2871510., 2877720., 2900355., 2906610., 2929380.,
      2935680., 3421962., 3429468., 3456360., 3463920., 3490974., 3498588.,
      3525804., 3533472., 4003923., 4012806., 4044054., 4053000., 4084437.,
      4093446., 4125072., 4134144., 4588440., 4598736., 4634304., 4644672.,
      4680456., 4690896., 4726896., 4737408., 4019799., 4028934., 4059930.,
      4069128., 4100313., 4109574., 4140948., 4150272., 3449178., 3457116.,
      3483576., 3491568., 3518190., 3526236., 3553020., 3561120., 2876865.,
      2883570., 2905530., 2912280., 2934375., 2941170., 2963400., 2970240.,
      3364850., 3372500., 3396700., 3404400., 3428750., 3436500., 3461000.,
      3468800., 4041860., 4051160., 4080080., 4089440., 4118540., 4127960.,
      4157240., 4166720., 4719470., 4730460., 4764060., 4775120., 4808930.,
      4820060., 4854080., 4865280., 5397360., 5410080., 5448320., 5461120.,
      5499600., 5512480., 5551200., 5564160., 4719190., 4730460., 4763780.,
      4775120., 4808650., 4820060., 4853800., 4865280., 4041380., 4051160.,
      4079600., 4089440., 4118060., 4127960., 4156760., 4166720., 3364250.,
      3372500., 3396100., 3404400., 3428150., 3436500., 3460400., 3468800.,
      2875965., 2883570., 2904630., 2912280., 2933475., 2941170., 2962500.,
      2970240., 3447882., 3457116., 3482280., 3491568., 3516894., 3526236.,
      3551724., 3561120., 4018035., 4028934., 4058166., 4069128., 4098549.,
      4109574., 4139184., 4150272., 4586136., 4598736., 4632000., 4644672.,
      4678152., 4690896., 4724592., 4737408., 4001655., 4012806., 4041786.,
      4053000., 4082169., 4093446., 4122804., 4134144., 3419802., 3429468.,
      3454200., 3463920., 3488814., 3498588., 3523644., 3533472., 2840865.,
      2849010., 2869530., 2877720., 2898375., 2906610., 2927400., 2935680.,
      2393640., 2401040., 2419120., 2426560., 2444760., 2452240., 2470560.,
      2478080., 2863312., 2872288., 2893888., 2902912., 2924656., 2933728.,
      2955616., 2964736., 3329368., 3339952., 3365040., 3375680., 3400936.,
      3411632., 3437056., 3447808., 3791552., 3803776., 3832320., 3844608.,
      3873344., 3885696., 3914624., 3927040., 3300472., 3311280., 3336144.,
      3347008., 3372040., 3382960., 3408160., 3419136., 2813776., 2823136.,
      2844352., 2853760., 2875120., 2884576., 2906080., 2915584., 2331720.,
      2339600., 2357200., 2365120., 2382840., 2390800., 2408640., 2416640.,
      1928115., 1935150., 1950410., 1957480., 1972845., 1979950., 1995420.,
      2002560., 2300438., 2308964., 2327192., 2335760., 2354114., 2362724.,
      2381204., 2389856., 2667805., 2677850., 2699018., 2709112., 2730427.,
      2740570., 2762032., 2772224., 3029992., 3041584., 3065664., 3077312.,
      3101560., 3113264., 3137680., 3149440., 2629977., 2640218., 2661190.,
      2671480., 2692599., 2702938., 2724204., 2734592., 2235590., 2244452.,
      2262344., 2271248., 2289266., 2298212., 2316356., 2325344., 1847055.,
      1854510., 1869350., 1876840., 1891785., 1899310., 1914360., 1921920.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17016., 17424., 18080., 18496., 19176., 19600., 20304., 20736., 17944.,
      18384., 19072., 19520., 20232., 20688., 21424., 21888., 18872., 19344.,
      20064., 20544., 21288., 21776., 22544., 23040., 19800., 20304., 21056.,
      21568., 22344., 22864., 23664., 24192., 20728., 21264., 22048., 22592.,
      23400., 23952., 24784., 25344., 21656., 22224., 23040., 23616., 24456.,
      25040., 25904., 26496., 22584., 23184., 24032., 24640., 25512., 26128.,
      27024., 27648., 24440., 25104., 26016., 26688., 27624., 28304., 29264.,
      29952., 25368., 26064., 27008., 27712., 28680., 29392., 30384., 31104.,
      26296., 27024., 28000., 28736., 29736., 30480., 31504., 32256., 27224.,
      27984., 28992., 29760., 30792., 31568., 32624., 33408., 28152., 28944.,
      29984., 30784., 31848., 32656., 33744., 34560., 29080., 29904., 30976.,
      31808., 32904., 33744., 34864., 35712., 30008., 30864., 31968., 32832.,
      33960., 34832., 35984., 36864., 31864., 32784., 33952., 34880., 36072.,
      37008., 38224., 39168., 32792., 33744., 34944., 35904., 37128., 38096.,
      39344., 40320., 33720., 34704., 35936., 36928., 38184., 39184., 40464.,
      41472., 34648., 35664., 36928., 37952., 39240., 40272., 41584., 42624.,
      35576., 36624., 37920., 38976., 40296., 41360., 42704., 43776., 36504.,
      37584., 38912., 40000., 41352., 42448., 43824., 44928., 37432., 38544.,
      39904., 41024., 42408., 43536., 44944., 46080., 39288., 40464., 41888.,
      43072., 44520., 45712., 47184., 48384., 40216., 41424., 42880., 44096.,
      45576., 46800., 48304., 49536., 41144., 42384., 43872., 45120., 46632.,
      47888., 49424., 50688., 42072., 43344., 44864., 46144., 47688., 48976.,
      50544., 51840., 43000., 44304., 45856., 47168., 48744., 50064., 51664.,
      52992., 43928., 45264., 46848., 48192., 49800., 51152., 52784., 54144.,
      44856., 46224., 47840., 49216., 50856., 52240., 53904., 55296., 46712.,
      48144., 49824., 51264., 52968., 54416., 56144., 57600., 47640., 49104.,
      50816., 52288., 54024., 55504., 57264., 58752., 48568., 50064., 51808.,
      53312., 55080., 56592., 58384., 59904., 49496., 51024., 52800., 54336.,
      56136., 57680., 59504., 61056., 50424., 51984., 53792., 55360., 57192.,
      58768., 60624., 62208., 51352., 52944., 54784., 56384., 58248., 59856.,
      61744., 63360., 52280., 53904., 55776., 57408., 59304., 60944., 62864.,
      64512., 54136., 55824., 57760., 59456., 61416., 63120., 65104., 66816.,
      55064., 56784., 58752., 60480., 62472., 64208., 66224., 67968., 55992.,
      57744., 59744., 61504., 63528., 65296., 67344., 69120., 56920., 58704.,
      60736., 62528., 64584., 66384., 68464., 70272., 57848., 59664., 61728.,
      63552., 65640., 67472., 69584., 71424., 58776., 60624., 62720., 64576.,
      66696., 68560., 70704., 72576., 59704., 61584., 63712., 65600., 67752.,
      69648., 71824., 73728., 61560., 63504., 65696., 67648., 69864., 71824.,
      74064., 76032., 62488., 64464., 66688., 68672., 70920., 72912., 75184.,
      77184., 63416., 65424., 67680., 69696., 71976., 74000., 76304., 78336.,
      64344., 66384., 68672., 70720., 73032., 75088., 77424., 79488., 65272.,
      67344., 69664., 71744., 74088., 76176., 78544., 80640., 66200., 68304.,
      70656., 72768., 75144., 77264., 79664., 81792., 67128., 69264., 71648.,
      73792., 76200., 78352., 80784., 82944.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3697995.,  3701670.,  3705345.,  3709020.,  3742550.,  3746260.,
      3749970.,  3753680.,  3787385.,  3791130.,  3794875.,  3798620.,
      3832500.,  3836280.,  3840060.,  3843840.,  4475422.,  4479916.,
      4484410.,  4488904.,  4528888.,  4533424.,  4537960.,  4542496.,
      4582690.,  4587268.,  4591846.,  4596424.,  4636828.,  4641448.,
      4646068.,  4650688.,  5264413.,  5269754.,  5275095.,  5280436.,
      5326790.,  5332180.,  5337570.,  5342960.,  5389559.,  5394998.,
      5400437.,  5405876.,  5452720.,  5458208.,  5463696.,  5469184.,
      6064520.,  6070736.,  6076952.,  6083168.,  6135808.,  6142080.,
      6148352.,  6154624.,  6207544.,  6213872.,  6220200.,  6226528.,
      6279728.,  6286112.,  6292496.,  6298880.,  5339089.,  5344626.,
      5350163.,  5355700.,  5401466.,  5407052.,  5412638.,  5418224.,
      5464235.,  5469870.,  5475505.,  5481140.,  5527396.,  5533080.,
      5538764.,  5544448.,  4603438.,  4608268.,  4613098.,  4617928.,
      4656904.,  4661776.,  4666648.,  4671520.,  4710706.,  4715620.,
      4720534.,  4725448.,  4764844.,  4769800.,  4774756.,  4779712.,
      3858015.,  3862110.,  3866205.,  3870300.,  3902570.,  3906700.,
      3910830.,  3914960.,  3947405.,  3951570.,  3955735.,  3959900.,
      3992520.,  3996720.,  4000920.,  4005120.,  4664680.,  4669520.,
      4674360.,  4679200.,  4715600.,  4720480.,  4725360.,  4730240.,
      4766840.,  4771760.,  4776680.,  4781600.,  4818400.,  4823360.,
      4828320.,  4833280.,  5628560.,  5634464.,  5640368.,  5646272.,
      5689664.,  5695616.,  5701568.,  5707520.,  5751152.,  5757152.,
      5763152.,  5769152.,  5813024.,  5819072.,  5825120.,  5831168.,
      6601560.,  6608560.,  6615560.,  6622560.,  6672848.,  6679904.,
      6686960.,  6694016.,  6744584.,  6751696.,  6758808.,  6765920.,
      6816768.,  6823936.,  6831104.,  6838272.,  7583168.,  7591296.,
      7599424.,  7607552.,  7664640.,  7672832.,  7681024.,  7689216.,
      7746624.,  7754880.,  7763136.,  7771392.,  7829120.,  7837440.,
      7845760.,  7854080.,  6658232.,  6665456.,  6672680.,  6679904.,
      6729520.,  6736800.,  6744080.,  6751360.,  6801256.,  6808592.,
      6815928.,  6823264.,  6873440.,  6880832.,  6888224.,  6895616.,
      5725712.,  5732000.,  5738288.,  5744576.,  5786816.,  5793152.,
      5799488.,  5805824.,  5848304.,  5854688.,  5861072.,  5867456.,
      5910176.,  5916608.,  5923040.,  5929472.,  4786120.,  4791440.,
      4796760.,  4802080.,  4837040.,  4842400.,  4847760.,  4853120.,
      4888280.,  4893680.,  4899080.,  4904480.,  4939840.,  4945280.,
      4950720.,  4956160.,  5679525.,  5685690.,  5691855.,  5698020.,
      5736810.,  5743020.,  5749230.,  5755440.,  5794455.,  5800710.,
      5806965.,  5813220.,  5852460.,  5858760.,  5865060.,  5871360.,
      6836418.,  6843924.,  6851430.,  6858936.,  6905160.,  6912720.,
      6920280.,  6927840.,  6974334.,  6981948.,  6989562.,  6997176.,
      7043940.,  7051608.,  7059276.,  7066944.,  7998963.,  8007846.,
      8016729.,  8025612.,  8079162.,  8088108.,  8097054.,  8106000.,
      8159865.,  8168874.,  8177883.,  8186892.,  8241072.,  8250144.,
      8259216.,  8268288.,  9166584.,  9176880.,  9187176.,  9197472.,
      9258240.,  9268608.,  9278976.,  9289344.,  9350472.,  9360912.,
      9371352.,  9381792.,  9443280.,  9453792.,  9464304.,  9474816.,
      8030463.,  8039598.,  8048733.,  8057868.,  8110662.,  8119860.,
      8129058.,  8138256.,  8191365.,  8200626.,  8209887.,  8219148.,
      8272572.,  8281896.,  8291220.,  8300544.,  6890418.,  6898356.,
      6906294.,  6914232.,  6959160.,  6967152.,  6975144.,  6983136.,
      7028334.,  7036380.,  7044426.,  7052472.,  7097940.,  7106040.,
      7114140.,  7122240.,  5747025.,  5753730.,  5760435.,  5767140.,
      5804310.,  5811060.,  5817810.,  5824560.,  5861955.,  5868750.,
      5875545.,  5882340.,  5919960.,  5926800.,  5933640.,  5940480.,
      6722050.,  6729700.,  6737350.,  6745000.,  6785700.,  6793400.,
      6801100.,  6808800.,  6849750.,  6857500.,  6865250.,  6873000.,
      6914200.,  6922000.,  6929800.,  6937600.,  8074420.,  8083720.,
      8093020.,  8102320.,  8150800.,  8160160.,  8169520.,  8178880.,
      8227660.,  8237080.,  8246500.,  8255920.,  8305000.,  8314480.,
      8323960.,  8333440.,  9427950.,  9438940.,  9449930.,  9460920.,
      9517060.,  9528120.,  9539180.,  9550240.,  9606730.,  9617860.,
      9628990.,  9640120.,  9696960.,  9708160.,  9719360.,  9730560.,
      10782000., 10794720., 10807440., 10820160., 10883840., 10896640.,
      10909440., 10922240., 10986320., 10999200., 11012080., 11024960.,
      11089440., 11102400., 11115360., 11128320., 9427110.,  9438380.,
      9449650.,  9460920.,  9516220.,  9527560.,  9538900.,  9550240.,
      9605890.,  9617300.,  9628710.,  9640120.,  9696120.,  9707600.,
      9719080.,  9730560.,  8072980.,  8082760.,  8092540.,  8102320.,
      8149360.,  8159200.,  8169040.,  8178880.,  8226220.,  8236120.,
      8246020.,  8255920.,  8303560.,  8313520.,  8323480.,  8333440.,
      6720250.,  6728500.,  6736750.,  6745000.,  6783900.,  6792200.,
      6800500.,  6808800.,  6847950.,  6856300.,  6864650.,  6873000.,
      6912400.,  6920800.,  6929200.,  6937600.,  5744325.,  5751930.,
      5759535.,  5767140.,  5801610.,  5809260.,  5816910.,  5824560.,
      5859255.,  5866950.,  5874645.,  5882340.,  5917260.,  5925000.,
      5932740.,  5940480.,  6886530.,  6895764.,  6904998.,  6914232.,
      6955272.,  6964560.,  6973848.,  6983136.,  7024446.,  7033788.,
      7043130.,  7052472.,  7094052.,  7103448.,  7112844.,  7122240.,
      8025171.,  8036070.,  8046969.,  8057868.,  8105370.,  8116332.,
      8127294.,  8138256.,  8186073.,  8197098.,  8208123.,  8219148.,
      8267280.,  8278368.,  8289456.,  8300544.,  9159672.,  9172272.,
      9184872.,  9197472.,  9251328.,  9264000.,  9276672.,  9289344.,
      9343560.,  9356304.,  9369048.,  9381792.,  9436368.,  9449184.,
      9462000.,  9474816.,  7992159.,  8003310.,  8014461.,  8025612.,
      8072358.,  8083572.,  8094786.,  8106000.,  8153061.,  8164338.,
      8175615.,  8186892.,  8234268.,  8245608.,  8256948.,  8268288.,
      6829938.,  6839604.,  6849270.,  6858936.,  6898680.,  6908400.,
      6918120.,  6927840.,  6967854.,  6977628.,  6987402.,  6997176.,
      7037460.,  7047288.,  7057116.,  7066944.,  5673585.,  5681730.,
      5689875.,  5698020.,  5730870.,  5739060.,  5747250.,  5755440.,
      5788515.,  5796750.,  5804985.,  5813220.,  5846520.,  5854800.,
      5863080.,  5871360.,  4779880.,  4787280.,  4794680.,  4802080.,
      4830800.,  4838240.,  4845680.,  4853120.,  4882040.,  4889520.,
      4897000.,  4904480.,  4933600.,  4941120.,  4948640.,  4956160.,
      5717648.,  5726624.,  5735600.,  5744576.,  5778752.,  5787776.,
      5796800.,  5805824.,  5840240.,  5849312.,  5858384.,  5867456.,
      5902112.,  5911232.,  5920352.,  5929472.,  6648152.,  6658736.,
      6669320.,  6679904.,  6719440.,  6730080.,  6740720.,  6751360.,
      6791176.,  6801872.,  6812568.,  6823264.,  6863360.,  6874112.,
      6884864.,  6895616.,  7570880.,  7583104.,  7595328.,  7607552.,
      7652352.,  7664640.,  7676928.,  7689216.,  7734336.,  7746688.,
      7759040.,  7771392.,  7816832.,  7829248.,  7841664.,  7854080.,
      6590136.,  6600944.,  6611752.,  6622560.,  6661424.,  6672288.,
      6683152.,  6694016.,  6733160.,  6744080.,  6755000.,  6765920.,
      6805344.,  6816320.,  6827296.,  6838272.,  5618192.,  5627552.,
      5636912.,  5646272.,  5679296.,  5688704.,  5698112.,  5707520.,
      5740784.,  5750240.,  5759696.,  5769152.,  5802656.,  5812160.,
      5821664.,  5831168.,  4655560.,  4663440.,  4671320.,  4679200.,
      4706480.,  4714400.,  4722320.,  4730240.,  4757720.,  4765680.,
      4773640.,  4781600.,  4809280.,  4817280.,  4825280.,  4833280.,
      3849195.,  3856230.,  3863265.,  3870300.,  3893750.,  3900820.,
      3907890.,  3914960.,  3938585.,  3945690.,  3952795.,  3959900.,
      3983700.,  3990840.,  3997980.,  4005120.,  4592350.,  4600876.,
      4609402.,  4617928.,  4645816.,  4654384.,  4662952.,  4671520.,
      4699618.,  4708228.,  4716838.,  4725448.,  4753756.,  4762408.,
      4771060.,  4779712.,  5325565.,  5335610.,  5345655.,  5355700.,
      5387942.,  5398036.,  5408130.,  5418224.,  5450711.,  5460854.,
      5470997.,  5481140.,  5513872.,  5524064.,  5534256.,  5544448.,
      6048392.,  6059984.,  6071576.,  6083168.,  6119680.,  6131328.,
      6142976.,  6154624.,  6191416.,  6203120.,  6214824.,  6226528.,
      6263600.,  6275360.,  6287120.,  6298880.,  5249713.,  5259954.,
      5270195.,  5280436.,  5312090.,  5322380.,  5332670.,  5342960.,
      5374859.,  5385198.,  5395537.,  5405876.,  5438020.,  5448408.,
      5458796.,  5469184.,  4462318.,  4471180.,  4480042.,  4488904.,
      4515784.,  4524688.,  4533592.,  4542496.,  4569586.,  4578532.,
      4587478.,  4596424.,  4623724.,  4632712.,  4641700.,  4650688.,
      3686655.,  3694110.,  3701565.,  3709020.,  3731210.,  3738700.,
      3746190.,  3753680.,  3776045.,  3783570.,  3791095.,  3798620.,
      3821160.,  3828720.,  3836280.,  3843840.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      33624.,  34032.,  34440.,  34848.,  35744.,  36160.,  36576.,  36992.,
      37928.,  38352.,  38776.,  39200.,  40176.,  40608.,  41040.,  41472.,
      35448.,  35888.,  36328.,  36768.,  37696.,  38144.,  38592.,  39040.,
      40008.,  40464.,  40920.,  41376.,  42384.,  42848.,  43312.,  43776.,
      37272.,  37744.,  38216.,  38688.,  39648.,  40128.,  40608.,  41088.,
      42088.,  42576.,  43064.,  43552.,  44592.,  45088.,  45584.,  46080.,
      39096.,  39600.,  40104.,  40608.,  41600.,  42112.,  42624.,  43136.,
      44168.,  44688.,  45208.,  45728.,  46800.,  47328.,  47856.,  48384.,
      40920.,  41456.,  41992.,  42528.,  43552.,  44096.,  44640.,  45184.,
      46248.,  46800.,  47352.,  47904.,  49008.,  49568.,  50128.,  50688.,
      42744.,  43312.,  43880.,  44448.,  45504.,  46080.,  46656.,  47232.,
      48328.,  48912.,  49496.,  50080.,  51216.,  51808.,  52400.,  52992.,
      44568.,  45168.,  45768.,  46368.,  47456.,  48064.,  48672.,  49280.,
      50408.,  51024.,  51640.,  52256.,  53424.,  54048.,  54672.,  55296.,
      48216.,  48880.,  49544.,  50208.,  51360.,  52032.,  52704.,  53376.,
      54568.,  55248.,  55928.,  56608.,  57840.,  58528.,  59216.,  59904.,
      50040.,  50736.,  51432.,  52128.,  53312.,  54016.,  54720.,  55424.,
      56648.,  57360.,  58072.,  58784.,  60048.,  60768.,  61488.,  62208.,
      51864.,  52592.,  53320.,  54048.,  55264.,  56000.,  56736.,  57472.,
      58728.,  59472.,  60216.,  60960.,  62256.,  63008.,  63760.,  64512.,
      53688.,  54448.,  55208.,  55968.,  57216.,  57984.,  58752.,  59520.,
      60808.,  61584.,  62360.,  63136.,  64464.,  65248.,  66032.,  66816.,
      55512.,  56304.,  57096.,  57888.,  59168.,  59968.,  60768.,  61568.,
      62888.,  63696.,  64504.,  65312.,  66672.,  67488.,  68304.,  69120.,
      57336.,  58160.,  58984.,  59808.,  61120.,  61952.,  62784.,  63616.,
      64968.,  65808.,  66648.,  67488.,  68880.,  69728.,  70576.,  71424.,
      59160.,  60016.,  60872.,  61728.,  63072.,  63936.,  64800.,  65664.,
      67048.,  67920.,  68792.,  69664.,  71088.,  71968.,  72848.,  73728.,
      62808.,  63728.,  64648.,  65568.,  66976.,  67904.,  68832.,  69760.,
      71208.,  72144.,  73080.,  74016.,  75504.,  76448.,  77392.,  78336.,
      64632.,  65584.,  66536.,  67488.,  68928.,  69888.,  70848.,  71808.,
      73288.,  74256.,  75224.,  76192.,  77712.,  78688.,  79664.,  80640.,
      66456.,  67440.,  68424.,  69408.,  70880.,  71872.,  72864.,  73856.,
      75368.,  76368.,  77368.,  78368.,  79920.,  80928.,  81936.,  82944.,
      68280.,  69296.,  70312.,  71328.,  72832.,  73856.,  74880.,  75904.,
      77448.,  78480.,  79512.,  80544.,  82128.,  83168.,  84208.,  85248.,
      70104.,  71152.,  72200.,  73248.,  74784.,  75840.,  76896.,  77952.,
      79528.,  80592.,  81656.,  82720.,  84336.,  85408.,  86480.,  87552.,
      71928.,  73008.,  74088.,  75168.,  76736.,  77824.,  78912.,  80000.,
      81608.,  82704.,  83800.,  84896.,  86544.,  87648.,  88752.,  89856.,
      73752.,  74864.,  75976.,  77088.,  78688.,  79808.,  80928.,  82048.,
      83688.,  84816.,  85944.,  87072.,  88752.,  89888.,  91024.,  92160.,
      77400.,  78576.,  79752.,  80928.,  82592.,  83776.,  84960.,  86144.,
      87848.,  89040.,  90232.,  91424.,  93168.,  94368.,  95568.,  96768.,
      79224.,  80432.,  81640.,  82848.,  84544.,  85760.,  86976.,  88192.,
      89928.,  91152.,  92376.,  93600.,  95376.,  96608.,  97840.,  99072.,
      81048.,  82288.,  83528.,  84768.,  86496.,  87744.,  88992.,  90240.,
      92008.,  93264.,  94520.,  95776.,  97584.,  98848.,  100112., 101376.,
      82872.,  84144.,  85416.,  86688.,  88448.,  89728.,  91008.,  92288.,
      94088.,  95376.,  96664.,  97952.,  99792.,  101088., 102384., 103680.,
      84696.,  86000.,  87304.,  88608.,  90400.,  91712.,  93024.,  94336.,
      96168.,  97488.,  98808.,  100128., 102000., 103328., 104656., 105984.,
      86520.,  87856.,  89192.,  90528.,  92352.,  93696.,  95040.,  96384.,
      98248.,  99600.,  100952., 102304., 104208., 105568., 106928., 108288.,
      88344.,  89712.,  91080.,  92448.,  94304.,  95680.,  97056.,  98432.,
      100328., 101712., 103096., 104480., 106416., 107808., 109200., 110592.,
      91992.,  93424.,  94856.,  96288.,  98208.,  99648.,  101088., 102528.,
      104488., 105936., 107384., 108832., 110832., 112288., 113744., 115200.,
      93816.,  95280.,  96744.,  98208.,  100160., 101632., 103104., 104576.,
      106568., 108048., 109528., 111008., 113040., 114528., 116016., 117504.,
      95640.,  97136.,  98632.,  100128., 102112., 103616., 105120., 106624.,
      108648., 110160., 111672., 113184., 115248., 116768., 118288., 119808.,
      97464.,  98992.,  100520., 102048., 104064., 105600., 107136., 108672.,
      110728., 112272., 113816., 115360., 117456., 119008., 120560., 122112.,
      99288.,  100848., 102408., 103968., 106016., 107584., 109152., 110720.,
      112808., 114384., 115960., 117536., 119664., 121248., 122832., 124416.,
      101112., 102704., 104296., 105888., 107968., 109568., 111168., 112768.,
      114888., 116496., 118104., 119712., 121872., 123488., 125104., 126720.,
      102936., 104560., 106184., 107808., 109920., 111552., 113184., 114816.,
      116968., 118608., 120248., 121888., 124080., 125728., 127376., 129024.,
      106584., 108272., 109960., 111648., 113824., 115520., 117216., 118912.,
      121128., 122832., 124536., 126240., 128496., 130208., 131920., 133632.,
      108408., 110128., 111848., 113568., 115776., 117504., 119232., 120960.,
      123208., 124944., 126680., 128416., 130704., 132448., 134192., 135936.,
      110232., 111984., 113736., 115488., 117728., 119488., 121248., 123008.,
      125288., 127056., 128824., 130592., 132912., 134688., 136464., 138240.,
      112056., 113840., 115624., 117408., 119680., 121472., 123264., 125056.,
      127368., 129168., 130968., 132768., 135120., 136928., 138736., 140544.,
      113880., 115696., 117512., 119328., 121632., 123456., 125280., 127104.,
      129448., 131280., 133112., 134944., 137328., 139168., 141008., 142848.,
      115704., 117552., 119400., 121248., 123584., 125440., 127296., 129152.,
      131528., 133392., 135256., 137120., 139536., 141408., 143280., 145152.,
      117528., 119408., 121288., 123168., 125536., 127424., 129312., 131200.,
      133608., 135504., 137400., 139296., 141744., 143648., 145552., 147456.,
      121176., 123120., 125064., 127008., 129440., 131392., 133344., 135296.,
      137768., 139728., 141688., 143648., 146160., 148128., 150096., 152064.,
      123000., 124976., 126952., 128928., 131392., 133376., 135360., 137344.,
      139848., 141840., 143832., 145824., 148368., 150368., 152368., 154368.,
      124824., 126832., 128840., 130848., 133344., 135360., 137376., 139392.,
      141928., 143952., 145976., 148000., 150576., 152608., 154640., 156672.,
      126648., 128688., 130728., 132768., 135296., 137344., 139392., 141440.,
      144008., 146064., 148120., 150176., 152784., 154848., 156912., 158976.,
      128472., 130544., 132616., 134688., 137248., 139328., 141408., 143488.,
      146088., 148176., 150264., 152352., 154992., 157088., 159184., 161280.,
      130296., 132400., 134504., 136608., 139200., 141312., 143424., 145536.,
      148168., 150288., 152408., 154528., 157200., 159328., 161456., 163584.,
      132120., 134256., 136392., 138528., 141152., 143296., 145440., 147584.,
      150248., 152400., 154552., 156704., 159408., 161568., 163728., 165888.};
  const std::array<int, 4> in_shape = {{1, 10, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      91231.,  107212., 123396., 139776., 124908., 109858., 94633.,
      114632., 134372., 154272., 174324., 155424., 136388., 117224.,
      139167., 162792., 186516., 210330., 187164., 163926., 140625.,
      164350., 191905., 219480., 247065., 219480., 191905., 164350.,
      140625., 163926., 187164., 210330., 186516., 162792., 139167.,
      117224., 136388., 155424., 174324., 154272., 134372., 114632.,
      94633.,  109858., 124908., 139776., 123396., 107212., 91231.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1622., 1700., 1778., 1856., 1934., 2012., 2090., 2324., 2402., 2480.,
      2558., 2636., 2714., 2792., 3026., 3104., 3182., 3260., 3338., 3416.,
      3494., 3728., 3806., 3884., 3962., 4040., 4118., 4196., 4430., 4508.,
      4586., 4664., 4742., 4820., 4898., 5132., 5210., 5288., 5366., 5444.,
      5522., 5600., 5834., 5912., 5990., 6068., 6146., 6224., 6302.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      181181., 182462., 212905., 214424., 245028., 246792., 277536., 279552.,
      247996., 249816., 218099., 219716., 187859., 189266., 227584., 229264.,
      266756., 268744., 306240., 308544., 346020., 348648., 308480., 310848.,
      270676., 272776., 232624., 234448., 276201., 278334., 323064., 325584.,
      370116., 373032., 417339., 420660., 371340., 374328., 325206., 327852.,
      278955., 281250., 326060., 328700., 380695., 383810., 435360., 438960.,
      490035., 494130., 435280., 438960., 380555., 383810., 325880., 328700.,
      278631., 281250., 324765., 327852., 370764., 374328., 416610., 420660.,
      369396., 373032., 322371., 325584., 275553., 278334., 231904., 234448.,
      269780., 272776., 307392., 310848., 344724., 348648., 305024., 308544.,
      265636., 268744., 226576., 229264., 186851., 189266., 216874., 219716.,
      246540., 249816., 275835., 279552., 243460., 246792., 211484., 214424.,
      179921., 182462.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3058.,  3244.,  3202.,  3400.,  3346.,  3556.,  3490.,  3712.,  3634.,
      3868.,  3778.,  4024.,  3922.,  4180.,  4354.,  4648.,  4498.,  4804.,
      4642.,  4960.,  4786.,  5116.,  4930.,  5272.,  5074.,  5428.,  5218.,
      5584.,  5650.,  6052.,  5794.,  6208.,  5938.,  6364.,  6082.,  6520.,
      6226.,  6676.,  6370.,  6832.,  6514.,  6988.,  6946.,  7456.,  7090.,
      7612.,  7234.,  7768.,  7378.,  7924.,  7522.,  8080.,  7666.,  8236.,
      7810.,  8392.,  8242.,  8860.,  8386.,  9016.,  8530.,  9172.,  8674.,
      9328.,  8818.,  9484.,  8962.,  9640.,  9106.,  9796.,  9538.,  10264.,
      9682.,  10420., 9826.,  10576., 9970.,  10732., 10114., 10888., 10258.,
      11044., 10402., 11200., 10834., 11668., 10978., 11824., 11122., 11980.,
      11266., 12136., 11410., 12292., 11554., 12448., 11698., 12604.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      361081., 362362., 363643., 364924., 424291., 425810., 427329., 428848.,
      488292., 490056., 491820., 493584., 553056., 555072., 557088., 559104.,
      494172., 495992., 497812., 499632., 434581., 436198., 437815., 439432.,
      374311., 375718., 377125., 378532., 453488., 455168., 456848., 458528.,
      531524., 533512., 535500., 537488., 610176., 612480., 614784., 617088.,
      689412., 692040., 694668., 697296., 614592., 616960., 619328., 621696.,
      539252., 541352., 543452., 545552., 463424., 465248., 467072., 468896.,
      550269., 552402., 554535., 556668., 643608., 646128., 648648., 651168.,
      737316., 740232., 743148., 746064., 831357., 834678., 837999., 841320.,
      739692., 742680., 745668., 748656., 647766., 650412., 653058., 655704.,
      555615., 557910., 560205., 562500., 649480., 652120., 654760., 657400.,
      758275., 761390., 764505., 767620., 867120., 870720., 874320., 877920.,
      975975., 980070., 984165., 988260., 866880., 870560., 874240., 877920.,
      757855., 761110., 764365., 767620., 648940., 651760., 654580., 657400.,
      554643., 557262., 559881., 562500., 646443., 649530., 652617., 655704.,
      737964., 741528., 745092., 748656., 829170., 833220., 837270., 841320.,
      735156., 738792., 742428., 746064., 641529., 644742., 647955., 651168.,
      548325., 551106., 553887., 556668., 461264., 463808., 466352., 468896.,
      536564., 539560., 542556., 545552., 611328., 614784., 618240., 621696.,
      685524., 689448., 693372., 697296., 606528., 610048., 613568., 617088.,
      528164., 531272., 534380., 537488., 450464., 453152., 455840., 458528.,
      371287., 373702., 376117., 378532., 430906., 433748., 436590., 439432.,
      489804., 493080., 496356., 499632., 547953., 551670., 555387., 559104.,
      483588., 486920., 490252., 493584., 420028., 422968., 425908., 428848.,
      357301., 359842., 362383., 364924.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5930.,  6116.,  6302.,  6488.,  6206.,  6404.,  6602.,  6800.,  6482.,
      6692.,  6902.,  7112.,  6758.,  6980.,  7202.,  7424.,  7034.,  7268.,
      7502.,  7736.,  7310.,  7556.,  7802.,  8048.,  7586.,  7844.,  8102.,
      8360.,  8414.,  8708.,  9002.,  9296.,  8690.,  8996.,  9302.,  9608.,
      8966.,  9284.,  9602.,  9920.,  9242.,  9572.,  9902.,  10232., 9518.,
      9860.,  10202., 10544., 9794.,  10148., 10502., 10856., 10070., 10436.,
      10802., 11168., 10898., 11300., 11702., 12104., 11174., 11588., 12002.,
      12416., 11450., 11876., 12302., 12728., 11726., 12164., 12602., 13040.,
      12002., 12452., 12902., 13352., 12278., 12740., 13202., 13664., 12554.,
      13028., 13502., 13976., 13382., 13892., 14402., 14912., 13658., 14180.,
      14702., 15224., 13934., 14468., 15002., 15536., 14210., 14756., 15302.,
      15848., 14486., 15044., 15602., 16160., 14762., 15332., 15902., 16472.,
      15038., 15620., 16202., 16784., 15866., 16484., 17102., 17720., 16142.,
      16772., 17402., 18032., 16418., 17060., 17702., 18344., 16694., 17348.,
      18002., 18656., 16970., 17636., 18302., 18968., 17246., 17924., 18602.,
      19280., 17522., 18212., 18902., 19592., 18350., 19076., 19802., 20528.,
      18626., 19364., 20102., 20840., 18902., 19652., 20402., 21152., 19178.,
      19940., 20702., 21464., 19454., 20228., 21002., 21776., 19730., 20516.,
      21302., 22088., 20006., 20804., 21602., 22400., 20834., 21668., 22502.,
      23336., 21110., 21956., 22802., 23648., 21386., 22244., 23102., 23960.,
      21662., 22532., 23402., 24272., 21938., 22820., 23702., 24584., 22214.,
      23108., 24002., 24896., 22490., 23396., 24302., 25208.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      357322., 364924., 419979., 428848., 483448., 493584., 547701., 559104.,
      489496., 499632., 430563., 439432., 370930., 378532., 449840., 458528.,
      527352., 537488., 605504., 617088., 684264., 697296., 610112., 621696.,
      535416., 545552., 460208., 468896., 546894., 556668., 639765., 651168.,
      733032., 746064., 826659., 841320., 735624., 748656., 644301., 655704.,
      552726., 562500., 646540., 657400., 754950., 767620., 863440., 877920.,
      971970., 988260., 863440., 877920., 754950., 767620., 646540., 657400.,
      552726., 562500., 644301., 655704., 735624., 748656., 826659., 841320.,
      733032., 746064., 639765., 651168., 546894., 556668., 460208., 468896.,
      535416., 545552., 610112., 621696., 684264., 697296., 605504., 617088.,
      527352., 537488., 449840., 458528., 370930., 378532., 430563., 439432.,
      489496., 499632., 547701., 559104., 483448., 493584., 419979., 428848.,
      357322., 364924.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5972.,  6488.,  6260.,  6800.,  6548.,  7112.,  6836.,  7424.,  7124.,
      7736.,  7412.,  8048.,  7700.,  8360.,  8564.,  9296.,  8852.,  9608.,
      9140.,  9920.,  9428.,  10232., 9716.,  10544., 10004., 10856., 10292.,
      11168., 11156., 12104., 11444., 12416., 11732., 12728., 12020., 13040.,
      12308., 13352., 12596., 13664., 12884., 13976., 13748., 14912., 14036.,
      15224., 14324., 15536., 14612., 15848., 14900., 16160., 15188., 16472.,
      15476., 16784., 16340., 17720., 16628., 18032., 16916., 18344., 17204.,
      18656., 17492., 18968., 17780., 19280., 18068., 19592., 18932., 20528.,
      19220., 20840., 19508., 21152., 19796., 21464., 20084., 21776., 20372.,
      22088., 20660., 22400., 21524., 23336., 21812., 23648., 22100., 23960.,
      22388., 24272., 22676., 24584., 22964., 24896., 23252., 25208.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      712124.,  714644.,  727286.,  729848.,  836969.,  839958.,  854658.,
      857696.,  963424.,  966896.,  983640.,  987168.,  1091433., 1095402.,
      1114176., 1118208., 975408.,  978992.,  995624.,  999264.,  857941.,
      861126.,  875630.,  878864.,  739088.,  741860.,  754250.,  757064.,
      896368.,  899680.,  913696.,  917056.,  1050784., 1054704., 1071000.,
      1074976., 1206464., 1211008., 1229568., 1234176., 1363344., 1368528.,
      1389336., 1394592., 1215552., 1220224., 1238656., 1243392., 1066688.,
      1070832., 1086904., 1091104., 916816.,  920416.,  934144.,  937792.,
      1089576., 1093788., 1109070., 1113336., 1274553., 1279530., 1297296.,
      1302336., 1460304., 1466064., 1486296., 1492128., 1646757., 1653318.,
      1675998., 1682640., 1465344., 1471248., 1491336., 1497312., 1283373.,
      1288602., 1306116., 1311408., 1100916., 1105452., 1120410., 1125000.,
      1287860., 1293080., 1309520., 1314800., 1503740., 1509900., 1529010.,
      1535240., 1719760., 1726880., 1748640., 1755840., 1935840., 1943940.,
      1968330., 1976520., 1719600., 1726880., 1748480., 1755840., 1503460.,
      1509900., 1528730., 1535240., 1287500., 1293080., 1309160., 1314800.,
      1100268., 1105452., 1119762., 1125000., 1282491., 1288602., 1305234.,
      1311408., 1464192., 1471248., 1490184., 1497312., 1645299., 1653318.,
      1674540., 1682640., 1458864., 1466064., 1484856., 1492128., 1273167.,
      1279530., 1295910., 1302336., 1088280., 1093788., 1107774., 1113336.,
      915376.,  920416.,  932704.,  937792.,  1064896., 1070832., 1085112.,
      1091104., 1213376., 1220224., 1236480., 1243392., 1360752., 1368528.,
      1386744., 1394592., 1204032., 1211008., 1227136., 1234176., 1048544.,
      1054704., 1068760., 1074976., 894352.,  899680.,  911680.,  917056.,
      737072.,  741860.,  752234.,  757064.,  855491.,  861126.,  873180.,
      878864.,  972496.,  978992.,  992712.,  999264.,  1088031., 1095402.,
      1110774., 1118208., 960288.,  966896.,  980504.,  987168.,  834127.,
      839958.,  851816.,  857696.,  709604.,  714644.,  724766.,  729848.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11584., 11944., 12604., 12976., 12136., 12520., 13204., 13600., 12688.,
      13096., 13804., 14224., 13240., 13672., 14404., 14848., 13792., 14248.,
      15004., 15472., 14344., 14824., 15604., 16096., 14896., 15400., 16204.,
      16720., 16552., 17128., 18004., 18592., 17104., 17704., 18604., 19216.,
      17656., 18280., 19204., 19840., 18208., 18856., 19804., 20464., 18760.,
      19432., 20404., 21088., 19312., 20008., 21004., 21712., 19864., 20584.,
      21604., 22336., 21520., 22312., 23404., 24208., 22072., 22888., 24004.,
      24832., 22624., 23464., 24604., 25456., 23176., 24040., 25204., 26080.,
      23728., 24616., 25804., 26704., 24280., 25192., 26404., 27328., 24832.,
      25768., 27004., 27952., 26488., 27496., 28804., 29824., 27040., 28072.,
      29404., 30448., 27592., 28648., 30004., 31072., 28144., 29224., 30604.,
      31696., 28696., 29800., 31204., 32320., 29248., 30376., 31804., 32944.,
      29800., 30952., 32404., 33568., 31456., 32680., 34204., 35440., 32008.,
      33256., 34804., 36064., 32560., 33832., 35404., 36688., 33112., 34408.,
      36004., 37312., 33664., 34984., 36604., 37936., 34216., 35560., 37204.,
      38560., 34768., 36136., 37804., 39184., 36424., 37864., 39604., 41056.,
      36976., 38440., 40204., 41680., 37528., 39016., 40804., 42304., 38080.,
      39592., 41404., 42928., 38632., 40168., 42004., 43552., 39184., 40744.,
      42604., 44176., 39736., 41320., 43204., 44800., 41392., 43048., 45004.,
      46672., 41944., 43624., 45604., 47296., 42496., 44200., 46204., 47920.,
      43048., 44776., 46804., 48544., 43600., 45352., 47404., 49168., 44152.,
      45928., 48004., 49792., 44704., 46504., 48604., 50416.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1421728., 1424248., 1426768., 1429288., 1452010., 1454572., 1457134.,
      1459696., 1670949., 1673938., 1676927., 1679916., 1706278., 1709316.,
      1712354., 1715392., 1923376., 1926848., 1930320., 1933792., 1963752.,
      1967280., 1970808., 1974336., 2178897., 2182866., 2186835., 2190804.,
      2224320., 2228352., 2232384., 2236416., 1947232., 1950816., 1954400.,
      1957984., 1987608., 1991248., 1994888., 1998528., 1712697., 1715882.,
      1719067., 1722252., 1748026., 1751260., 1754494., 1757728., 1475404.,
      1478176., 1480948., 1483720., 1505686., 1508500., 1511314., 1514128.,
      1789424., 1792736., 1796048., 1799360., 1824032., 1827392., 1830752.,
      1834112., 2097648., 2101568., 2105488., 2109408., 2138024., 2142000.,
      2145976., 2149952., 2408384., 2412928., 2417472., 2422016., 2454528.,
      2459136., 2463744., 2468352., 2721504., 2726688., 2731872., 2737056.,
      2773416., 2778672., 2783928., 2789184., 2426432., 2431104., 2435776.,
      2440448., 2472576., 2477312., 2482048., 2486784., 2129232., 2133376.,
      2137520., 2141664., 2169608., 2173808., 2178008., 2182208., 1830032.,
      1833632., 1837232., 1840832., 1864640., 1868288., 1871936., 1875584.,
      2174940., 2179152., 2183364., 2187576., 2213874., 2218140., 2222406.,
      2226672., 2544129., 2549106., 2554083., 2559060., 2589552., 2594592.,
      2599632., 2604672., 2914848., 2920608., 2926368., 2932128., 2966760.,
      2972592., 2978424., 2984256., 3286953., 3293514., 3300075., 3306636.,
      3345354., 3351996., 3358638., 3365280., 2924784., 2930688., 2936592.,
      2942496., 2976696., 2982672., 2988648., 2994624., 2561517., 2566746.,
      2571975., 2577204., 2606940., 2612232., 2617524., 2622816., 2197296.,
      2201832., 2206368., 2210904., 2236230., 2240820., 2245410., 2250000.,
      2570500., 2575720., 2580940., 2586160., 2613760., 2619040., 2624320.,
      2629600., 3001320., 3007480., 3013640., 3019800., 3051790., 3058020.,
      3064250., 3070480., 3432400., 3439520., 3446640., 3453760., 3490080.,
      3497280., 3504480., 3511680., 3863580., 3871680., 3879780., 3887880.,
      3928470., 3936660., 3944850., 3953040., 3431920., 3439200., 3446480.,
      3453760., 3489600., 3496960., 3504320., 3511680., 3000480., 3006920.,
      3013360., 3019800., 3050950., 3057460., 3063970., 3070480., 2569420.,
      2575000., 2580580., 2586160., 2612680., 2618320., 2623960., 2629600.,
      2195352., 2200536., 2205720., 2210904., 2234286., 2239524., 2244762.,
      2250000., 2558871., 2564982., 2571093., 2577204., 2604294., 2610468.,
      2616642., 2622816., 2921328., 2928384., 2935440., 2942496., 2973240.,
      2980368., 2987496., 2994624., 3282579., 3290598., 3298617., 3306636.,
      3340980., 3349080., 3357180., 3365280., 2910528., 2917728., 2924928.,
      2932128., 2962440., 2969712., 2976984., 2984256., 2539971., 2546334.,
      2552697., 2559060., 2585394., 2591820., 2598246., 2604672., 2171052.,
      2176560., 2182068., 2187576., 2209986., 2215548., 2221110., 2226672.,
      1825712., 1830752., 1835792., 1840832., 1860320., 1865408., 1870496.,
      1875584., 2123856., 2129792., 2135728., 2141664., 2164232., 2170224.,
      2176216., 2182208., 2419904., 2426752., 2433600., 2440448., 2466048.,
      2472960., 2479872., 2486784., 2713728., 2721504., 2729280., 2737056.,
      2765640., 2773488., 2781336., 2789184., 2401088., 2408064., 2415040.,
      2422016., 2447232., 2454272., 2461312., 2468352., 2090928., 2097088.,
      2103248., 2109408., 2131304., 2137520., 2143736., 2149952., 1783376.,
      1788704., 1794032., 1799360., 1817984., 1823360., 1828736., 1834112.,
      1469356., 1474144., 1478932., 1483720., 1499638., 1504468., 1509298.,
      1514128., 1705347., 1710982., 1716617., 1722252., 1740676., 1746360.,
      1752044., 1757728., 1938496., 1944992., 1951488., 1957984., 1978872.,
      1985424., 1991976., 1998528., 2168691., 2176062., 2183433., 2190804.,
      2214114., 2221548., 2228982., 2236416., 1913968., 1920576., 1927184.,
      1933792., 1954344., 1961008., 1967672., 1974336., 1662423., 1668254.,
      1674085., 1679916., 1697752., 1703632., 1709512., 1715392., 1414168.,
      1419208., 1424248., 1429288., 1444450., 1449532., 1454614., 1459696.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      22808., 23168., 23528., 23888., 24836., 25208., 25580., 25952., 23888.,
      24272., 24656., 25040., 26012., 26408., 26804., 27200., 24968., 25376.,
      25784., 26192., 27188., 27608., 28028., 28448., 26048., 26480., 26912.,
      27344., 28364., 28808., 29252., 29696., 27128., 27584., 28040., 28496.,
      29540., 30008., 30476., 30944., 28208., 28688., 29168., 29648., 30716.,
      31208., 31700., 32192., 29288., 29792., 30296., 30800., 31892., 32408.,
      32924., 33440., 32528., 33104., 33680., 34256., 35420., 36008., 36596.,
      37184., 33608., 34208., 34808., 35408., 36596., 37208., 37820., 38432.,
      34688., 35312., 35936., 36560., 37772., 38408., 39044., 39680., 35768.,
      36416., 37064., 37712., 38948., 39608., 40268., 40928., 36848., 37520.,
      38192., 38864., 40124., 40808., 41492., 42176., 37928., 38624., 39320.,
      40016., 41300., 42008., 42716., 43424., 39008., 39728., 40448., 41168.,
      42476., 43208., 43940., 44672., 42248., 43040., 43832., 44624., 46004.,
      46808., 47612., 48416., 43328., 44144., 44960., 45776., 47180., 48008.,
      48836., 49664., 44408., 45248., 46088., 46928., 48356., 49208., 50060.,
      50912., 45488., 46352., 47216., 48080., 49532., 50408., 51284., 52160.,
      46568., 47456., 48344., 49232., 50708., 51608., 52508., 53408., 47648.,
      48560., 49472., 50384., 51884., 52808., 53732., 54656., 48728., 49664.,
      50600., 51536., 53060., 54008., 54956., 55904., 51968., 52976., 53984.,
      54992., 56588., 57608., 58628., 59648., 53048., 54080., 55112., 56144.,
      57764., 58808., 59852., 60896., 54128., 55184., 56240., 57296., 58940.,
      60008., 61076., 62144., 55208., 56288., 57368., 58448., 60116., 61208.,
      62300., 63392., 56288., 57392., 58496., 59600., 61292., 62408., 63524.,
      64640., 57368., 58496., 59624., 60752., 62468., 63608., 64748., 65888.,
      58448., 59600., 60752., 61904., 63644., 64808., 65972., 67136., 61688.,
      62912., 64136., 65360., 67172., 68408., 69644., 70880., 62768., 64016.,
      65264., 66512., 68348., 69608., 70868., 72128., 63848., 65120., 66392.,
      67664., 69524., 70808., 72092., 73376., 64928., 66224., 67520., 68816.,
      70700., 72008., 73316., 74624., 66008., 67328., 68648., 69968., 71876.,
      73208., 74540., 75872., 67088., 68432., 69776., 71120., 73052., 74408.,
      75764., 77120., 68168., 69536., 70904., 72272., 74228., 75608., 76988.,
      78368., 71408., 72848., 74288., 75728., 77756., 79208., 80660., 82112.,
      72488., 73952., 75416., 76880., 78932., 80408., 81884., 83360., 73568.,
      75056., 76544., 78032., 80108., 81608., 83108., 84608., 74648., 76160.,
      77672., 79184., 81284., 82808., 84332., 85856., 75728., 77264., 78800.,
      80336., 82460., 84008., 85556., 87104., 76808., 78368., 79928., 81488.,
      83636., 85208., 86780., 88352., 77888., 79472., 81056., 82640., 84812.,
      86408., 88004., 89600., 81128., 82784., 84440., 86096., 88340., 90008.,
      91676., 93344., 82208., 83888., 85568., 87248., 89516., 91208., 92900.,
      94592., 83288., 84992., 86696., 88400., 90692., 92408., 94124., 95840.,
      84368., 86096., 87824., 89552., 91868., 93608., 95348., 97088., 85448.,
      87200., 88952., 90704., 93044., 94808., 96572., 98336., 86528., 88304.,
      90080., 91856., 94220., 96008., 97796., 99584., 87608., 89408., 91208.,
      93008., 95396., 97208., 99020., 100832.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1414210., 1429288., 1444450., 1459696., 1662325., 1679916., 1697605.,
      1715392., 1913688., 1933792., 1954008., 1974336., 2168187., 2190804.,
      2213547., 2236416., 1937880., 1957984., 1978200., 1998528., 1704661.,
      1722252., 1739941., 1757728., 1468642., 1483720., 1498882., 1514128.,
      1782128., 1799360., 1816688., 1834112., 2089304., 2109408., 2129624.,
      2149952., 2399040., 2422016., 2445120., 2468352., 2711208., 2737056.,
      2763048., 2789184., 2417472., 2440448., 2463552., 2486784., 2121560.,
      2141664., 2161880., 2182208., 1823600., 1840832., 1858160., 1875584.,
      2168190., 2187576., 2207070., 2226672., 2536443., 2559060., 2581803.,
      2604672., 2906280., 2932128., 2958120., 2984256., 3277557., 3306636.,
      3335877., 3365280., 2916648., 2942496., 2968488., 2994624., 2554587.,
      2577204., 2599947., 2622816., 2191518., 2210904., 2230398., 2250000.,
      2564620., 2586160., 2607820., 2629600., 2994670., 3019800., 3045070.,
      3070480., 3425040., 3453760., 3482640., 3511680., 3855570., 3887880.,
      3920370., 3953040., 3425040., 3453760., 3482640., 3511680., 2994670.,
      3019800., 3045070., 3070480., 2564620., 2586160., 2607820., 2629600.,
      2191518., 2210904., 2230398., 2250000., 2554587., 2577204., 2599947.,
      2622816., 2916648., 2942496., 2968488., 2994624., 3277557., 3306636.,
      3335877., 3365280., 2906280., 2932128., 2958120., 2984256., 2536443.,
      2559060., 2581803., 2604672., 2168190., 2187576., 2207070., 2226672.,
      1823600., 1840832., 1858160., 1875584., 2121560., 2141664., 2161880.,
      2182208., 2417472., 2440448., 2463552., 2486784., 2711208., 2737056.,
      2763048., 2789184., 2399040., 2422016., 2445120., 2468352., 2089304.,
      2109408., 2129624., 2149952., 1782128., 1799360., 1816688., 1834112.,
      1468642., 1483720., 1498882., 1514128., 1704661., 1722252., 1739941.,
      1757728., 1937880., 1957984., 1978200., 1998528., 2168187., 2190804.,
      2213547., 2236416., 1913688., 1933792., 1954008., 1974336., 1662325.,
      1679916., 1697605., 1715392., 1414210., 1429288., 1444450., 1459696.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      22892., 23888., 24908., 25952., 23996., 25040., 26108., 27200., 25100.,
      26192., 27308., 28448., 26204., 27344., 28508., 29696., 27308., 28496.,
      29708., 30944., 28412., 29648., 30908., 32192., 29516., 30800., 32108.,
      33440., 32828., 34256., 35708., 37184., 33932., 35408., 36908., 38432.,
      35036., 36560., 38108., 39680., 36140., 37712., 39308., 40928., 37244.,
      38864., 40508., 42176., 38348., 40016., 41708., 43424., 39452., 41168.,
      42908., 44672., 42764., 44624., 46508., 48416., 43868., 45776., 47708.,
      49664., 44972., 46928., 48908., 50912., 46076., 48080., 50108., 52160.,
      47180., 49232., 51308., 53408., 48284., 50384., 52508., 54656., 49388.,
      51536., 53708., 55904., 52700., 54992., 57308., 59648., 53804., 56144.,
      58508., 60896., 54908., 57296., 59708., 62144., 56012., 58448., 60908.,
      63392., 57116., 59600., 62108., 64640., 58220., 60752., 63308., 65888.,
      59324., 61904., 64508., 67136., 62636., 65360., 68108., 70880., 63740.,
      66512., 69308., 72128., 64844., 67664., 70508., 73376., 65948., 68816.,
      71708., 74624., 67052., 69968., 72908., 75872., 68156., 71120., 74108.,
      77120., 69260., 72272., 75308., 78368., 72572., 75728., 78908., 82112.,
      73676., 76880., 80108., 83360., 74780., 78032., 81308., 84608., 75884.,
      79184., 82508., 85856., 76988., 80336., 83708., 87104., 78092., 81488.,
      84908., 88352., 79196., 82640., 86108., 89600., 82508., 86096., 89708.,
      93344., 83612., 87248., 90908., 94592., 84716., 88400., 92108., 95840.,
      85820., 89552., 93308., 97088., 86924., 90704., 94508., 98336., 88028.,
      91856., 95708., 99584., 89132., 93008., 96908., 100832.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2823422., 2828420., 2853536., 2858576., 2883818., 2888900., 2914268.,
      2919392., 3318721., 3324650., 3353854., 3359832., 3389183., 3395210.,
      3424708., 3430784., 3820488., 3827376., 3860640., 3867584., 3901016.,
      3908016., 3941616., 3948672., 4328499., 4336374., 4373670., 4381608.,
      4419093., 4427094., 4464768., 4472832., 3868648., 3875760., 3908800.,
      3915968., 3949176., 3956400., 3989776., 3997056., 3403001., 3409322.,
      3438134., 3444504., 3473463., 3479882., 3508988., 3515456., 2931782.,
      2937284., 2961896., 2967440., 2992178., 2997764., 3022628., 3028256.,
      3557680., 3564256., 3592096., 3598720., 3626704., 3633376., 3661504.,
      3668224., 4170824., 4178608., 4210976., 4218816., 4251352., 4259248.,
      4291952., 4299904., 4789056., 4798080., 4834944., 4844032., 4881088.,
      4890240., 4927488., 4936704., 5412120., 5422416., 5463744., 5474112.,
      5515656., 5526096., 5567856., 5578368., 4825664., 4834944., 4871552.,
      4880896., 4917696., 4927104., 4964096., 4973568., 4234888., 4243120.,
      4275040., 4283328., 4315416., 4323760., 4356016., 4364416., 3640048.,
      3647200., 3674464., 3681664., 3709072., 3716320., 3743872., 3751168.,
      4328010., 4336380., 4366728., 4375152., 4405662., 4414140., 4444812.,
      4453344., 5062995., 5072886., 5108166., 5118120., 5153589., 5163606.,
      5199264., 5209344., 5801112., 5812560., 5852736., 5864256., 5904648.,
      5916240., 5956848., 5968512., 6542073., 6555114., 6600150., 6613272.,
      6658551., 6671754., 6717276., 6730560., 5821560., 5833296., 5873184.,
      5884992., 5925096., 5936976., 5977296., 5989248., 5098779., 5109174.,
      5143950., 5154408., 5189373., 5199894., 5235048., 5245632., 4374018.,
      4383036., 4412736., 4421808., 4451670., 4460796., 4490820., 4500000.,
      5118860., 5129240., 5161880., 5172320., 5205140., 5215640., 5248640.,
      5259200., 5977090., 5989340., 6027280., 6039600., 6077750., 6090140.,
      6128500., 6140960., 6835920., 6850080., 6893280., 6907520., 6950960.,
      6965280., 7008960., 7023360., 7695030., 7711140., 7759560., 7775760.,
      7824450., 7840740., 7889700., 7906080., 6835600., 6850080., 6892960.,
      6907520., 6950640., 6965280., 7008640., 7023360., 5976530., 5989340.,
      6026720., 6039600., 6077190., 6090140., 6127940., 6140960., 5118140.,
      5129240., 5161160., 5172320., 5204420., 5215640., 5247920., 5259200.,
      4372722., 4383036., 4411440., 4421808., 4450374., 4460796., 4489524.,
      4500000., 5097015., 5109174., 5142186., 5154408., 5187609., 5199894.,
      5233284., 5245632., 5819256., 5833296., 5870880., 5884992., 5922792.,
      5936976., 5974992., 5989248., 6539157., 6555114., 6597234., 6613272.,
      6655635., 6671754., 6714360., 6730560., 5798232., 5812560., 5849856.,
      5864256., 5901768., 5916240., 5953968., 5968512., 5060223., 5072886.,
      5105394., 5118120., 5150817., 5163606., 5196492., 5209344., 4325418.,
      4336380., 4364136., 4375152., 4403070., 4414140., 4442220., 4453344.,
      3637168., 3647200., 3671584., 3681664., 3706192., 3716320., 3740992.,
      3751168., 4231304., 4243120., 4271456., 4283328., 4311832., 4323760.,
      4352432., 4364416., 4821312., 4834944., 4867200., 4880896., 4913344.,
      4927104., 4959744., 4973568., 5406936., 5422416., 5458560., 5474112.,
      5510472., 5526096., 5562672., 5578368., 4784192., 4798080., 4830080.,
      4844032., 4876224., 4890240., 4922624., 4936704., 4166344., 4178608.,
      4206496., 4218816., 4246872., 4259248., 4287472., 4299904., 3553648.,
      3564256., 3588064., 3598720., 3622672., 3633376., 3657472., 3668224.,
      2927750., 2937284., 2957864., 2967440., 2988146., 2997764., 3018596.,
      3028256., 3398101., 3409322., 3433234., 3444504., 3468563., 3479882.,
      3504088., 3515456., 3862824., 3875760., 3902976., 3915968., 3943352.,
      3956400., 3983952., 3997056., 4321695., 4336374., 4366866., 4381608.,
      4412289., 4427094., 4457964., 4472832., 3814216., 3827376., 3854368.,
      3867584., 3894744., 3908016., 3935344., 3948672., 3313037., 3324650.,
      3348170., 3359832., 3383499., 3395210., 3419024., 3430784., 2818382.,
      2828420., 2848496., 2858576., 2878778., 2888900., 2909228., 2919392.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      45076.,  45784.,  47056.,  47776.,  49084.,  49816.,  51160.,  51904.,
      47236.,  47992.,  49312.,  50080.,  51436.,  52216.,  53608.,  54400.,
      49396.,  50200.,  51568.,  52384.,  53788.,  54616.,  56056.,  56896.,
      51556.,  52408.,  53824.,  54688.,  56140.,  57016.,  58504.,  59392.,
      53716.,  54616.,  56080.,  56992.,  58492.,  59416.,  60952.,  61888.,
      55876.,  56824.,  58336.,  59296.,  60844.,  61816.,  63400.,  64384.,
      58036.,  59032.,  60592.,  61600.,  63196.,  64216.,  65848.,  66880.,
      64516.,  65656.,  67360.,  68512.,  70252.,  71416.,  73192.,  74368.,
      66676.,  67864.,  69616.,  70816.,  72604.,  73816.,  75640.,  76864.,
      68836.,  70072.,  71872.,  73120.,  74956.,  76216.,  78088.,  79360.,
      70996.,  72280.,  74128.,  75424.,  77308.,  78616.,  80536.,  81856.,
      73156.,  74488.,  76384.,  77728.,  79660.,  81016.,  82984.,  84352.,
      75316.,  76696.,  78640.,  80032.,  82012.,  83416.,  85432.,  86848.,
      77476.,  78904.,  80896.,  82336.,  84364.,  85816.,  87880.,  89344.,
      83956.,  85528.,  87664.,  89248.,  91420.,  93016.,  95224.,  96832.,
      86116.,  87736.,  89920.,  91552.,  93772.,  95416.,  97672.,  99328.,
      88276.,  89944.,  92176.,  93856.,  96124.,  97816.,  100120., 101824.,
      90436.,  92152.,  94432.,  96160.,  98476.,  100216., 102568., 104320.,
      92596.,  94360.,  96688.,  98464.,  100828., 102616., 105016., 106816.,
      94756.,  96568.,  98944.,  100768., 103180., 105016., 107464., 109312.,
      96916.,  98776.,  101200., 103072., 105532., 107416., 109912., 111808.,
      103396., 105400., 107968., 109984., 112588., 114616., 117256., 119296.,
      105556., 107608., 110224., 112288., 114940., 117016., 119704., 121792.,
      107716., 109816., 112480., 114592., 117292., 119416., 122152., 124288.,
      109876., 112024., 114736., 116896., 119644., 121816., 124600., 126784.,
      112036., 114232., 116992., 119200., 121996., 124216., 127048., 129280.,
      114196., 116440., 119248., 121504., 124348., 126616., 129496., 131776.,
      116356., 118648., 121504., 123808., 126700., 129016., 131944., 134272.,
      122836., 125272., 128272., 130720., 133756., 136216., 139288., 141760.,
      124996., 127480., 130528., 133024., 136108., 138616., 141736., 144256.,
      127156., 129688., 132784., 135328., 138460., 141016., 144184., 146752.,
      129316., 131896., 135040., 137632., 140812., 143416., 146632., 149248.,
      131476., 134104., 137296., 139936., 143164., 145816., 149080., 151744.,
      133636., 136312., 139552., 142240., 145516., 148216., 151528., 154240.,
      135796., 138520., 141808., 144544., 147868., 150616., 153976., 156736.,
      142276., 145144., 148576., 151456., 154924., 157816., 161320., 164224.,
      144436., 147352., 150832., 153760., 157276., 160216., 163768., 166720.,
      146596., 149560., 153088., 156064., 159628., 162616., 166216., 169216.,
      148756., 151768., 155344., 158368., 161980., 165016., 168664., 171712.,
      150916., 153976., 157600., 160672., 164332., 167416., 171112., 174208.,
      153076., 156184., 159856., 162976., 166684., 169816., 173560., 176704.,
      155236., 158392., 162112., 165280., 169036., 172216., 176008., 179200.,
      161716., 165016., 168880., 172192., 176092., 179416., 183352., 186688.,
      163876., 167224., 171136., 174496., 178444., 181816., 185800., 189184.,
      166036., 169432., 173392., 176800., 180796., 184216., 188248., 191680.,
      168196., 171640., 175648., 179104., 183148., 186616., 190696., 194176.,
      170356., 173848., 177904., 181408., 185500., 189016., 193144., 196672.,
      172516., 176056., 180160., 183712., 187852., 191416., 195592., 199168.,
      174676., 178264., 182416., 186016., 190204., 193816., 198040., 201664.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5641846.,  5646844.,  5651842.,  5656840.,  5702032.,  5707072.,
      5712112.,  5717152.,  5762554.,  5767636.,  5772718.,  5777800.,
      5823412.,  5828536.,  5833660.,  5838784.,  6631513.,  6637442.,
      6643371.,  6649300.,  6701730.,  6707708.,  6713686.,  6719664.,
      6772339.,  6778366.,  6784393.,  6790420.,  6843340.,  6849416.,
      6855492.,  6861568.,  7634088.,  7640976.,  7647864.,  7654752.,
      7714336.,  7721280.,  7728224.,  7735168.,  7795032.,  7802032.,
      7809032.,  7816032.,  7876176.,  7883232.,  7890288.,  7897344.,
      8649123.,  8656998.,  8664873.,  8672748.,  8739402.,  8747340.,
      8755278.,  8763216.,  8830185.,  8838186.,  8846187.,  8854188.,
      8921472.,  8929536.,  8937600.,  8945664.,  7730184.,  7737296.,
      7744408.,  7751520.,  7810432.,  7817600.,  7824768.,  7831936.,
      7891128.,  7898352.,  7905576.,  7912800.,  7972272.,  7979552.,
      7986832.,  7994112.,  6799681.,  6806002.,  6812323.,  6818644.,
      6869898.,  6876268.,  6882638.,  6889008.,  6940507.,  6946926.,
      6953345.,  6959764.,  7011508.,  7017976.,  7024444.,  7030912.,
      5858062.,  5863564.,  5869066.,  5874568.,  5918248.,  5923792.,
      5929336.,  5934880.,  5978770.,  5984356.,  5989942.,  5995528.,
      6039628.,  6045256.,  6050884.,  6056512.,  7108784.,  7115360.,
      7121936.,  7128512.,  7177568.,  7184192.,  7190816.,  7197440.,
      7246736.,  7253408.,  7260080.,  7266752.,  7316288.,  7323008.,
      7329728.,  7336448.,  8333864.,  8341648.,  8349432.,  8357216.,
      8414112.,  8421952.,  8429792.,  8437632.,  8494808.,  8502704.,
      8510600.,  8518496.,  8575952.,  8583904.,  8591856.,  8599808.,
      9569088.,  9578112.,  9587136.,  9596160.,  9660800.,  9669888.,
      9678976.,  9688064.,  9753024.,  9762176.,  9771328.,  9780480.,
      9845760.,  9854976.,  9864192.,  9873408.,  10813944., 10824240.,
      10834536., 10844832., 10917120., 10927488., 10937856., 10948224.,
      11020872., 11031312., 11041752., 11052192., 11125200., 11135712.,
      11146224., 11156736., 9642048.,  9651328.,  9660608.,  9669888.,
      9733760.,  9743104.,  9752448.,  9761792.,  9825984.,  9835392.,
      9844800.,  9854208.,  9918720.,  9928192.,  9937664.,  9947136.,
      8461544.,  8469776.,  8478008.,  8486240.,  8541792.,  8550080.,
      8558368.,  8566656.,  8622488.,  8630832.,  8639176.,  8647520.,
      8703632.,  8712032.,  8720432.,  8728832.,  7272944.,  7280096.,
      7287248.,  7294400.,  7341728.,  7348928.,  7356128.,  7363328.,
      7410896.,  7418144.,  7425392.,  7432640.,  7480448.,  7487744.,
      7495040.,  7502336.,  8647650.,  8656020.,  8664390.,  8672760.,
      8725032.,  8733456.,  8741880.,  8750304.,  8802846.,  8811324.,
      8819802.,  8828280.,  8881092.,  8889624.,  8898156.,  8906688.,
      10116099., 10125990., 10135881., 10145772., 10206378., 10216332.,
      10226286., 10236240., 10297161., 10307178., 10317195., 10327212.,
      10388448., 10398528., 10408608., 10418688., 11590776., 11602224.,
      11613672., 11625120., 11693952., 11705472., 11716992., 11728512.,
      11797704., 11809296., 11820888., 11832480., 11902032., 11913696.,
      11925360., 11937024., 13071105., 13084146., 13097187., 13110228.,
      13187178., 13200300., 13213422., 13226544., 13303899., 13317102.,
      13330305., 13343508., 13421268., 13434552., 13447836., 13461120.,
      11631384., 11643120., 11654856., 11666592., 11734560., 11746368.,
      11758176., 11769984., 11838312., 11850192., 11862072., 11873952.,
      11942640., 11954592., 11966544., 11978496., 10187163., 10197558.,
      10207953., 10218348., 10277442., 10287900., 10298358., 10308816.,
      10368225., 10378746., 10389267., 10399788., 10459512., 10470096.,
      10480680., 10491264., 8739018.,  8748036.,  8757054.,  8766072.,
      8816400.,  8825472.,  8834544.,  8843616.,  8894214.,  8903340.,
      8912466.,  8921592.,  8972460.,  8981640.,  8990820.,  9000000.,
      10227340., 10237720., 10248100., 10258480., 10313320., 10323760.,
      10334200., 10344640., 10399780., 10410280., 10420780., 10431280.,
      10486720., 10497280., 10507840., 10518400., 11941930., 11954180.,
      11966430., 11978680., 12042240., 12054560., 12066880., 12079200.,
      12143110., 12155500., 12167890., 12180280., 12244540., 12257000.,
      12269460., 12281920., 13657680., 13671840., 13686000., 13700160.,
      13772320., 13786560., 13800800., 13815040., 13887600., 13901920.,
      13916240., 13930560., 14003520., 14017920., 14032320., 14046720.,
      15373950., 15390060., 15406170., 15422280., 15502920., 15519120.,
      15535320., 15551520., 15632610., 15648900., 15665190., 15681480.,
      15763020., 15779400., 15795780., 15812160., 13656720., 13671200.,
      13685680., 13700160., 13771360., 13785920., 13800480., 13815040.,
      13886640., 13901280., 13915920., 13930560., 14002560., 14017280.,
      14032000., 14046720., 11940250., 11953060., 11965870., 11978680.,
      12040560., 12053440., 12066320., 12079200., 12141430., 12154380.,
      12167330., 12180280., 12242860., 12255880., 12268900., 12281920.,
      10225180., 10236280., 10247380., 10258480., 10311160., 10322320.,
      10333480., 10344640., 10397620., 10408840., 10420060., 10431280.,
      10484560., 10495840., 10507120., 10518400., 8735130.,  8745444.,
      8755758.,  8766072.,  8812512.,  8822880.,  8833248.,  8843616.,
      8890326.,  8900748.,  8911170.,  8921592.,  8968572.,  8979048.,
      8989524.,  9000000.,  10181871., 10194030., 10206189., 10218348.,
      10272150., 10284372., 10296594., 10308816., 10362933., 10375218.,
      10387503., 10399788., 10454220., 10466568., 10478916., 10491264.,
      11624472., 11638512., 11652552., 11666592., 11727648., 11741760.,
      11755872., 11769984., 11831400., 11845584., 11859768., 11873952.,
      11935728., 11949984., 11964240., 11978496., 13062357., 13078314.,
      13094271., 13110228., 13178430., 13194468., 13210506., 13226544.,
      13295151., 13311270., 13327389., 13343508., 13412520., 13428720.,
      13444920., 13461120., 11582136., 11596464., 11610792., 11625120.,
      11685312., 11699712., 11714112., 11728512., 11789064., 11803536.,
      11818008., 11832480., 11893392., 11907936., 11922480., 11937024.,
      10107783., 10120446., 10133109., 10145772., 10198062., 10210788.,
      10223514., 10236240., 10288845., 10301634., 10314423., 10327212.,
      10380132., 10392984., 10405836., 10418688., 8639874.,  8650836.,
      8661798.,  8672760.,  8717256.,  8728272.,  8739288.,  8750304.,
      8795070.,  8806140.,  8817210.,  8828280.,  8873316.,  8884440.,
      8895564.,  8906688.,  7264304.,  7274336.,  7284368.,  7294400.,
      7333088.,  7343168.,  7353248.,  7363328.,  7402256.,  7412384.,
      7422512.,  7432640.,  7471808.,  7481984.,  7492160.,  7502336.,
      8450792.,  8462608.,  8474424.,  8486240.,  8531040.,  8542912.,
      8554784.,  8566656.,  8611736.,  8623664.,  8635592.,  8647520.,
      8692880.,  8704864.,  8716848.,  8728832.,  9628992.,  9642624.,
      9656256.,  9669888.,  9720704.,  9734400.,  9748096.,  9761792.,
      9812928.,  9826688.,  9840448.,  9854208.,  9905664.,  9919488.,
      9933312.,  9947136.,  10798392., 10813872., 10829352., 10844832.,
      10901568., 10917120., 10932672., 10948224., 11005320., 11020944.,
      11036568., 11052192., 11109648., 11125344., 11141040., 11156736.,
      9554496.,  9568384.,  9582272.,  9596160.,  9646208.,  9660160.,
      9674112.,  9688064.,  9738432.,  9752448.,  9766464.,  9780480.,
      9831168.,  9845248.,  9859328.,  9873408.,  8320424.,  8332688.,
      8344952.,  8357216.,  8400672.,  8412992.,  8425312.,  8437632.,
      8481368.,  8493744.,  8506120.,  8518496.,  8562512.,  8574944.,
      8587376.,  8599808.,  7096688.,  7107296.,  7117904.,  7128512.,
      7165472.,  7176128.,  7186784.,  7197440.,  7234640.,  7245344.,
      7256048.,  7266752.,  7304192.,  7314944.,  7325696.,  7336448.,
      5845966.,  5855500.,  5865034.,  5874568.,  5906152.,  5915728.,
      5925304.,  5934880.,  5966674.,  5976292.,  5985910.,  5995528.,
      6027532.,  6037192.,  6046852.,  6056512.,  6784981.,  6796202.,
      6807423.,  6818644.,  6855198.,  6866468.,  6877738.,  6889008.,
      6925807.,  6937126.,  6948445.,  6959764.,  6996808.,  7008176.,
      7019544.,  7030912.,  7712712.,  7725648.,  7738584.,  7751520.,
      7792960.,  7805952.,  7818944.,  7831936.,  7873656.,  7886704.,
      7899752.,  7912800.,  7954800.,  7967904.,  7981008.,  7994112.,
      8628711.,  8643390.,  8658069.,  8672748.,  8718990.,  8733732.,
      8748474.,  8763216.,  8809773.,  8824578.,  8839383.,  8854188.,
      8901060.,  8915928.,  8930796.,  8945664.,  7615272.,  7628432.,
      7641592.,  7654752.,  7695520.,  7708736.,  7721952.,  7735168.,
      7776216.,  7789488.,  7802760.,  7816032.,  7857360.,  7870688.,
      7884016.,  7897344.,  6614461.,  6626074.,  6637687.,  6649300.,
      6684678.,  6696340.,  6708002.,  6719664.,  6755287.,  6766998.,
      6778709.,  6790420.,  6826288.,  6838048.,  6849808.,  6861568.,
      5626726.,  5636764.,  5646802.,  5656840.,  5686912.,  5696992.,
      5707072.,  5717152.,  5747434.,  5757556.,  5767678.,  5777800.,
      5808292.,  5818456.,  5828620.,  5838784.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      89444.,  90152.,  90860.,  91568.,  93392.,  94112.,  94832.,  95552.,
      97436.,  98168.,  98900.,  99632.,  101576., 102320., 103064., 103808.,
      93716.,  94472.,  95228.,  95984.,  97856.,  98624.,  99392.,  100160.,
      102092., 102872., 103652., 104432., 106424., 107216., 108008., 108800.,
      97988.,  98792.,  99596.,  100400., 102320., 103136., 103952., 104768.,
      106748., 107576., 108404., 109232., 111272., 112112., 112952., 113792.,
      102260., 103112., 103964., 104816., 106784., 107648., 108512., 109376.,
      111404., 112280., 113156., 114032., 116120., 117008., 117896., 118784.,
      106532., 107432., 108332., 109232., 111248., 112160., 113072., 113984.,
      116060., 116984., 117908., 118832., 120968., 121904., 122840., 123776.,
      110804., 111752., 112700., 113648., 115712., 116672., 117632., 118592.,
      120716., 121688., 122660., 123632., 125816., 126800., 127784., 128768.,
      115076., 116072., 117068., 118064., 120176., 121184., 122192., 123200.,
      125372., 126392., 127412., 128432., 130664., 131696., 132728., 133760.,
      127892., 129032., 130172., 131312., 133568., 134720., 135872., 137024.,
      139340., 140504., 141668., 142832., 145208., 146384., 147560., 148736.,
      132164., 133352., 134540., 135728., 138032., 139232., 140432., 141632.,
      143996., 145208., 146420., 147632., 150056., 151280., 152504., 153728.,
      136436., 137672., 138908., 140144., 142496., 143744., 144992., 146240.,
      148652., 149912., 151172., 152432., 154904., 156176., 157448., 158720.,
      140708., 141992., 143276., 144560., 146960., 148256., 149552., 150848.,
      153308., 154616., 155924., 157232., 159752., 161072., 162392., 163712.,
      144980., 146312., 147644., 148976., 151424., 152768., 154112., 155456.,
      157964., 159320., 160676., 162032., 164600., 165968., 167336., 168704.,
      149252., 150632., 152012., 153392., 155888., 157280., 158672., 160064.,
      162620., 164024., 165428., 166832., 169448., 170864., 172280., 173696.,
      153524., 154952., 156380., 157808., 160352., 161792., 163232., 164672.,
      167276., 168728., 170180., 171632., 174296., 175760., 177224., 178688.,
      166340., 167912., 169484., 171056., 173744., 175328., 176912., 178496.,
      181244., 182840., 184436., 186032., 188840., 190448., 192056., 193664.,
      170612., 172232., 173852., 175472., 178208., 179840., 181472., 183104.,
      185900., 187544., 189188., 190832., 193688., 195344., 197000., 198656.,
      174884., 176552., 178220., 179888., 182672., 184352., 186032., 187712.,
      190556., 192248., 193940., 195632., 198536., 200240., 201944., 203648.,
      179156., 180872., 182588., 184304., 187136., 188864., 190592., 192320.,
      195212., 196952., 198692., 200432., 203384., 205136., 206888., 208640.,
      183428., 185192., 186956., 188720., 191600., 193376., 195152., 196928.,
      199868., 201656., 203444., 205232., 208232., 210032., 211832., 213632.,
      187700., 189512., 191324., 193136., 196064., 197888., 199712., 201536.,
      204524., 206360., 208196., 210032., 213080., 214928., 216776., 218624.,
      191972., 193832., 195692., 197552., 200528., 202400., 204272., 206144.,
      209180., 211064., 212948., 214832., 217928., 219824., 221720., 223616.,
      204788., 206792., 208796., 210800., 213920., 215936., 217952., 219968.,
      223148., 225176., 227204., 229232., 232472., 234512., 236552., 238592.,
      209060., 211112., 213164., 215216., 218384., 220448., 222512., 224576.,
      227804., 229880., 231956., 234032., 237320., 239408., 241496., 243584.,
      213332., 215432., 217532., 219632., 222848., 224960., 227072., 229184.,
      232460., 234584., 236708., 238832., 242168., 244304., 246440., 248576.,
      217604., 219752., 221900., 224048., 227312., 229472., 231632., 233792.,
      237116., 239288., 241460., 243632., 247016., 249200., 251384., 253568.,
      221876., 224072., 226268., 228464., 231776., 233984., 236192., 238400.,
      241772., 243992., 246212., 248432., 251864., 254096., 256328., 258560.,
      226148., 228392., 230636., 232880., 236240., 238496., 240752., 243008.,
      246428., 248696., 250964., 253232., 256712., 258992., 261272., 263552.,
      230420., 232712., 235004., 237296., 240704., 243008., 245312., 247616.,
      251084., 253400., 255716., 258032., 261560., 263888., 266216., 268544.,
      243236., 245672., 248108., 250544., 254096., 256544., 258992., 261440.,
      265052., 267512., 269972., 272432., 276104., 278576., 281048., 283520.,
      247508., 249992., 252476., 254960., 258560., 261056., 263552., 266048.,
      269708., 272216., 274724., 277232., 280952., 283472., 285992., 288512.,
      251780., 254312., 256844., 259376., 263024., 265568., 268112., 270656.,
      274364., 276920., 279476., 282032., 285800., 288368., 290936., 293504.,
      256052., 258632., 261212., 263792., 267488., 270080., 272672., 275264.,
      279020., 281624., 284228., 286832., 290648., 293264., 295880., 298496.,
      260324., 262952., 265580., 268208., 271952., 274592., 277232., 279872.,
      283676., 286328., 288980., 291632., 295496., 298160., 300824., 303488.,
      264596., 267272., 269948., 272624., 276416., 279104., 281792., 284480.,
      288332., 291032., 293732., 296432., 300344., 303056., 305768., 308480.,
      268868., 271592., 274316., 277040., 280880., 283616., 286352., 289088.,
      292988., 295736., 298484., 301232., 305192., 307952., 310712., 313472.,
      281684., 284552., 287420., 290288., 294272., 297152., 300032., 302912.,
      306956., 309848., 312740., 315632., 319736., 322640., 325544., 328448.,
      285956., 288872., 291788., 294704., 298736., 301664., 304592., 307520.,
      311612., 314552., 317492., 320432., 324584., 327536., 330488., 333440.,
      290228., 293192., 296156., 299120., 303200., 306176., 309152., 312128.,
      316268., 319256., 322244., 325232., 329432., 332432., 335432., 338432.,
      294500., 297512., 300524., 303536., 307664., 310688., 313712., 316736.,
      320924., 323960., 326996., 330032., 334280., 337328., 340376., 343424.,
      298772., 301832., 304892., 307952., 312128., 315200., 318272., 321344.,
      325580., 328664., 331748., 334832., 339128., 342224., 345320., 348416.,
      303044., 306152., 309260., 312368., 316592., 319712., 322832., 325952.,
      330236., 333368., 336500., 339632., 343976., 347120., 350264., 353408.,
      307316., 310472., 313628., 316784., 321056., 324224., 327392., 330560.,
      334892., 338072., 341252., 344432., 348824., 352016., 355208., 358400.,
      320132., 323432., 326732., 330032., 334448., 337760., 341072., 344384.,
      348860., 352184., 355508., 358832., 363368., 366704., 370040., 373376.,
      324404., 327752., 331100., 334448., 338912., 342272., 345632., 348992.,
      353516., 356888., 360260., 363632., 368216., 371600., 374984., 378368.,
      328676., 332072., 335468., 338864., 343376., 346784., 350192., 353600.,
      358172., 361592., 365012., 368432., 373064., 376496., 379928., 383360.,
      332948., 336392., 339836., 343280., 347840., 351296., 354752., 358208.,
      362828., 366296., 369764., 373232., 377912., 381392., 384872., 388352.,
      337220., 340712., 344204., 347696., 352304., 355808., 359312., 362816.,
      367484., 371000., 374516., 378032., 382760., 386288., 389816., 393344.,
      341492., 345032., 348572., 352112., 356768., 360320., 363872., 367424.,
      372140., 375704., 379268., 382832., 387608., 391184., 394760., 398336.,
      345764., 349352., 352940., 356528., 361232., 364832., 368432., 372032.,
      376796., 380408., 384020., 387632., 392456., 396080., 399704., 403328.};
  const std::array<int, 4> in_shape = {{1, 10, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      131418., 151172., 171150., 191345., 173040., 154532., 135828.,
      165032., 189408., 213960., 238680., 215400., 191968., 168392.,
      200256., 229404., 258660., 288015., 259470., 230844., 202146.,
      236390., 270360., 304350., 338350., 304350., 270360., 236390.,
      202146., 230844., 259470., 288015., 258660., 229404., 200256.,
      168392., 191968., 215400., 238680., 213960., 189408., 165032.,
      135828., 154532., 173040., 191345., 171150., 151172., 131418.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3200.,  3336.,  3472.,  3608.,  3744.,  3880.,  4016.,  4560.,  4696.,
      4832.,  4968.,  5104.,  5240.,  5376.,  5920.,  6056.,  6192.,  6328.,
      6464.,  6600.,  6736.,  7280.,  7416.,  7552.,  7688.,  7824.,  7960.,
      8096.,  8640.,  8776.,  8912.,  9048.,  9184.,  9320.,  9456.,  10000.,
      10136., 10272., 10408., 10544., 10680., 10816., 11360., 11496., 11632.,
      11768., 11904., 12040., 12176.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261170., 262836., 300412., 302344., 340095., 342300., 380205., 382690.,
      343812., 346080., 307020., 309064., 269843., 271656., 327880., 330064.,
      376288., 378816., 425040., 427920., 474120., 477360., 427848., 430800.,
      381280., 383936., 334432., 336784., 397740., 400512., 455604., 458808.,
      513675., 517320., 571935., 576030., 515214., 518940., 458340., 461688.,
      401331., 404292., 469350., 472780., 536760., 540720., 604200., 608700.,
      671650., 676700., 604110., 608700., 536600., 540720., 469140., 472780.,
      400890., 404292., 457764., 461688., 514485., 518940., 571035., 576030.,
      512784., 517320., 454740., 458808., 396921., 400512., 333480., 336784.,
      380128., 383936., 426480., 430800., 472520., 477360., 423528., 427920.,
      374880., 378816., 326592., 330064., 268520., 271656., 305452., 309064.,
      341985., 346080., 378105., 382690., 338142., 342300., 298620., 302344.,
      259553., 262836.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6120.,  6400.,  6376.,  6672.,  6632.,  6944.,  6888.,  7216.,  7144.,
      7488.,  7400.,  7760.,  7656.,  8032.,  8680.,  9120.,  8936.,  9392.,
      9192.,  9664.,  9448.,  9936.,  9704.,  10208., 9960.,  10480., 10216.,
      10752., 11240., 11840., 11496., 12112., 11752., 12384., 12008., 12656.,
      12264., 12928., 12520., 13200., 12776., 13472., 13800., 14560., 14056.,
      14832., 14312., 15104., 14568., 15376., 14824., 15648., 15080., 15920.,
      15336., 16192., 16360., 17280., 16616., 17552., 16872., 17824., 17128.,
      18096., 17384., 18368., 17640., 18640., 17896., 18912., 18920., 20000.,
      19176., 20272., 19432., 20544., 19688., 20816., 19944., 21088., 20200.,
      21360., 20456., 21632., 21480., 22720., 21736., 22992., 21992., 23264.,
      22248., 23536., 22504., 23808., 22760., 24080., 23016., 24352.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      520674.,  522340.,  524006.,  525672.,  598892.,  600824.,  602756.,
      604688.,  677985.,  680190.,  682395.,  684600.,  757925.,  760410.,
      762895.,  765380.,  685356.,  687624.,  689892.,  692160.,  611996.,
      614040.,  616084.,  618128.,  537873.,  539686.,  541499.,  543312.,
      653576.,  655760.,  657944.,  660128.,  750048.,  752576.,  755104.,
      757632.,  847200.,  850080.,  852960.,  855840.,  945000.,  948240.,
      951480.,  954720.,  852744.,  855696.,  858648.,  861600.,  759904.,
      762560.,  765216.,  767872.,  666512.,  668864.,  671216.,  673568.,
      792708.,  795480.,  798252.,  801024.,  908004.,  911208.,  914412.,
      917616.,  1023705., 1027350., 1030995., 1034640., 1139775., 1143870.,
      1147965., 1152060., 1026702., 1030428., 1034154., 1037880., 913332.,
      916680.,  920028.,  923376.,  799701.,  802662.,  805623.,  808584.,
      935270.,  938700.,  942130.,  945560.,  1069560., 1073520., 1077480.,
      1081440., 1203900., 1208400., 1212900., 1217400., 1338250., 1343300.,
      1348350., 1353400., 1203630., 1208220., 1212810., 1217400., 1069080.,
      1073200., 1077320., 1081440., 934640.,  938280.,  941920.,  945560.,
      798378.,  801780.,  805182.,  808584.,  911604.,  915528.,  919452.,
      923376.,  1024515., 1028970., 1033425., 1037880., 1137075., 1142070.,
      1147065., 1152060., 1021032., 1025568., 1030104., 1034640., 905412.,
      909480.,  913548.,  917616.,  790251.,  793842.,  797433.,  801024.,
      663656.,  666960.,  670264.,  673568.,  756448.,  760256.,  764064.,
      767872.,  848640.,  852960.,  857280.,  861600.,  940200.,  945040.,
      949880.,  954720.,  842664.,  847056.,  851448.,  855840.,  745824.,
      749760.,  753696.,  757632.,  649712.,  653184.,  656656.,  660128.,
      533904.,  537040.,  540176.,  543312.,  607292.,  610904.,  614516.,
      618128.,  679875.,  683970.,  688065.,  692160.,  751625.,  756210.,
      760795.,  765380.,  672126.,  676284.,  680442.,  684600.,  593516.,
      597240.,  600964.,  604688.,  515823.,  519106.,  522389.,  525672.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11960., 12240., 12520., 12800., 12456., 12752., 13048., 13344., 12952.,
      13264., 13576., 13888., 13448., 13776., 14104., 14432., 13944., 14288.,
      14632., 14976., 14440., 14800., 15160., 15520., 14936., 15312., 15688.,
      16064., 16920., 17360., 17800., 18240., 17416., 17872., 18328., 18784.,
      17912., 18384., 18856., 19328., 18408., 18896., 19384., 19872., 18904.,
      19408., 19912., 20416., 19400., 19920., 20440., 20960., 19896., 20432.,
      20968., 21504., 21880., 22480., 23080., 23680., 22376., 22992., 23608.,
      24224., 22872., 23504., 24136., 24768., 23368., 24016., 24664., 25312.,
      23864., 24528., 25192., 25856., 24360., 25040., 25720., 26400., 24856.,
      25552., 26248., 26944., 26840., 27600., 28360., 29120., 27336., 28112.,
      28888., 29664., 27832., 28624., 29416., 30208., 28328., 29136., 29944.,
      30752., 28824., 29648., 30472., 31296., 29320., 30160., 31000., 31840.,
      29816., 30672., 31528., 32384., 31800., 32720., 33640., 34560., 32296.,
      33232., 34168., 35104., 32792., 33744., 34696., 35648., 33288., 34256.,
      35224., 36192., 33784., 34768., 35752., 36736., 34280., 35280., 36280.,
      37280., 34776., 35792., 36808., 37824., 36760., 37840., 38920., 40000.,
      37256., 38352., 39448., 40544., 37752., 38864., 39976., 41088., 38248.,
      39376., 40504., 41632., 38744., 39888., 41032., 42176., 39240., 40400.,
      41560., 42720., 39736., 40912., 42088., 43264., 41720., 42960., 44200.,
      45440., 42216., 43472., 44728., 45984., 42712., 43984., 45256., 46528.,
      43208., 44496., 45784., 47072., 43704., 45008., 46312., 47616., 44200.,
      45520., 46840., 48160., 44696., 46032., 47368., 48704.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      515823.,  525672.,  593432.,  604688.,  671937.,  684600.,  751310.,
      765380.,  679497.,  692160.,  606872.,  618128.,  533463.,  543312.,
      648872.,  660128.,  744768.,  757632.,  841368.,  855840.,  938640.,
      954720.,  847128.,  861600.,  755008.,  767872.,  662312.,  673568.,
      788361.,  801024.,  903144.,  917616.,  1018359., 1034640., 1133970.,
      1152060., 1021599., 1037880., 908904.,  923376.,  795921.,  808584.,
      931490.,  945560.,  1065360., 1081440., 1199310., 1217400., 1333300.,
      1353400., 1199310., 1217400., 1065360., 1081440., 931490.,  945560.,
      795921.,  808584.,  908904.,  923376.,  1021599., 1037880., 1133970.,
      1152060., 1018359., 1034640., 903144.,  917616.,  788361.,  801024.,
      662312.,  673568.,  755008.,  767872.,  847128.,  861600.,  938640.,
      954720.,  841368.,  855840.,  744768.,  757632.,  648872.,  660128.,
      533463.,  543312.,  606872.,  618128.,  679497.,  692160.,  751310.,
      765380.,  671937.,  684600.,  593432.,  604688.,  515823.,  525672.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11984., 12800., 12496., 13344., 13008., 13888., 13520., 14432., 14032.,
      14976., 14544., 15520., 15056., 16064., 17104., 18240., 17616., 18784.,
      18128., 19328., 18640., 19872., 19152., 20416., 19664., 20960., 20176.,
      21504., 22224., 23680., 22736., 24224., 23248., 24768., 23760., 25312.,
      24272., 25856., 24784., 26400., 25296., 26944., 27344., 29120., 27856.,
      29664., 28368., 30208., 28880., 30752., 29392., 31296., 29904., 31840.,
      30416., 32384., 32464., 34560., 32976., 35104., 33488., 35648., 34000.,
      36192., 34512., 36736., 35024., 37280., 35536., 37824., 37584., 40000.,
      38096., 40544., 38608., 41088., 39120., 41632., 39632., 42176., 40144.,
      42720., 40656., 43264., 42704., 45440., 43216., 45984., 43728., 46528.,
      44240., 47072., 44752., 47616., 45264., 48160., 45776., 48704.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1028363., 1031646., 1048012., 1051344., 1183056., 1186864., 1205512.,
      1209376., 1339527., 1343874., 1364790., 1369200., 1497720., 1502620.,
      1525790., 1530760., 1354521., 1358994., 1379784., 1384320., 1209712.,
      1213744., 1232168., 1236256., 1063349., 1066926., 1082998., 1086624.,
      1293432., 1297744., 1315888., 1320256., 1484544., 1489536., 1510208.,
      1515264., 1677048., 1682736., 1705920., 1711680., 1870880., 1877280.,
      1902960., 1909440., 1688424., 1694256., 1717296., 1723200., 1504768.,
      1510016., 1530432., 1535744., 1319976., 1324624., 1342432., 1347136.,
      1571241., 1576722., 1596504., 1602048., 1799952., 1806288., 1828824.,
      1835232., 2029509., 2036718., 2061990., 2069280., 2259840., 2267940.,
      2295930., 2304120., 2035827., 2043198., 2068308., 2075760., 1811184.,
      1817808., 1840056., 1846752., 1585983., 1591842., 1611246., 1617168.,
      1856190., 1862980., 1884260., 1891120., 2122880., 2130720., 2154960.,
      2162880., 2389710., 2398620., 2425800., 2434800., 2656600., 2666600.,
      2696700., 2706800., 2389530., 2398620., 2425620., 2434800., 2122560.,
      2130720., 2154640., 2162880., 1855770., 1862980., 1883840., 1891120.,
      1585101., 1591842., 1610364., 1617168., 1810032., 1817808., 1838904.,
      1846752., 2034369., 2043198., 2066850., 2075760., 2258040., 2267940.,
      2294130., 2304120., 2027727., 2036718., 2060208., 2069280., 1798224.,
      1806288., 1827096., 1835232., 1569603., 1576722., 1594866., 1602048.,
      1318072., 1324624., 1340528., 1347136., 1502464., 1510016., 1528128.,
      1535744., 1685688., 1694256., 1714560., 1723200., 1867680., 1877280.,
      1899760., 1909440., 1674024., 1682736., 1702896., 1711680., 1481728.,
      1489536., 1507392., 1515264., 1290856., 1297744., 1313312., 1320256.,
      1060703., 1066926., 1080352., 1086624., 1206576., 1213744., 1229032.,
      1236256., 1350867., 1358994., 1376130., 1384320., 1493520., 1502620.,
      1521590., 1530760., 1335621., 1343874., 1360884., 1369200., 1179472.,
      1186864., 1201928., 1209376., 1025129., 1031646., 1044778., 1051344.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      23424., 23968., 25040., 25600., 24416., 24992., 26096., 26688., 25408.,
      26016., 27152., 27776., 26400., 27040., 28208., 28864., 27392., 28064.,
      29264., 29952., 28384., 29088., 30320., 31040., 29376., 30112., 31376.,
      32128., 33344., 34208., 35600., 36480., 34336., 35232., 36656., 37568.,
      35328., 36256., 37712., 38656., 36320., 37280., 38768., 39744., 37312.,
      38304., 39824., 40832., 38304., 39328., 40880., 41920., 39296., 40352.,
      41936., 43008., 43264., 44448., 46160., 47360., 44256., 45472., 47216.,
      48448., 45248., 46496., 48272., 49536., 46240., 47520., 49328., 50624.,
      47232., 48544., 50384., 51712., 48224., 49568., 51440., 52800., 49216.,
      50592., 52496., 53888., 53184., 54688., 56720., 58240., 54176., 55712.,
      57776., 59328., 55168., 56736., 58832., 60416., 56160., 57760., 59888.,
      61504., 57152., 58784., 60944., 62592., 58144., 59808., 62000., 63680.,
      59136., 60832., 63056., 64768., 63104., 64928., 67280., 69120., 64096.,
      65952., 68336., 70208., 65088., 66976., 69392., 71296., 66080., 68000.,
      70448., 72384., 67072., 69024., 71504., 73472., 68064., 70048., 72560.,
      74560., 69056., 71072., 73616., 75648., 73024., 75168., 77840., 80000.,
      74016., 76192., 78896., 81088., 75008., 77216., 79952., 82176., 76000.,
      78240., 81008., 83264., 76992., 79264., 82064., 84352., 77984., 80288.,
      83120., 85440., 78976., 81312., 84176., 86528., 82944., 85408., 88400.,
      90880., 83936., 86432., 89456., 91968., 84928., 87456., 90512., 93056.,
      85920., 88480., 91568., 94144., 86912., 89504., 92624., 95232., 87904.,
      90528., 93680., 96320., 88896., 91552., 94736., 97408.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2053443., 2056726., 2060009., 2063292., 2092692., 2096024., 2099356.,
      2102688., 2362304., 2366112., 2369920., 2373728., 2407160., 2411024.,
      2414888., 2418752., 2674707., 2679054., 2683401., 2687748., 2725170.,
      2729580., 2733990., 2738400., 2990540., 2995440., 3000340., 3005240.,
      3046610., 3051580., 3056550., 3061520., 2704569., 2709042., 2713515.,
      2717988., 2755032., 2759568., 2764104., 2768640., 2415392., 2419424.,
      2423456., 2427488., 2460248., 2464336., 2468424., 2472512., 2123121.,
      2126698., 2130275., 2133852., 2162370., 2165996., 2169622., 2173248.,
      2582552., 2586864., 2591176., 2595488., 2627408., 2631776., 2636144.,
      2640512., 2964096., 2969088., 2974080., 2979072., 3015360., 3020416.,
      3025472., 3030528., 3348408., 3354096., 3359784., 3365472., 3406080.,
      3411840., 3417600., 3423360., 3735360., 3741760., 3748160., 3754560.,
      3799440., 3805920., 3812400., 3818880., 3371016., 3376848., 3382680.,
      3388512., 3428688., 3434592., 3440496., 3446400., 3004288., 3009536.,
      3014784., 3020032., 3055552., 3060864., 3066176., 3071488., 2635304.,
      2639952., 2644600., 2649248., 2680160., 2684864., 2689568., 2694272.,
      3137001., 3142482., 3147963., 3153444., 3187464., 3193008., 3198552.,
      3204096., 3593568., 3599904., 3606240., 3612576., 3651240., 3657648.,
      3664056., 3670464., 4051809., 4059018., 4066227., 4073436., 4116690.,
      4123980., 4131270., 4138560., 4511580., 4519680., 4527780., 4535880.,
      4583670., 4591860., 4600050., 4608240., 4064283., 4071654., 4079025.,
      4086396., 4129164., 4136616., 4144068., 4151520., 3615744., 3622368.,
      3628992., 3635616., 3673416., 3680112., 3686808., 3693504., 3166107.,
      3171966., 3177825., 3183684., 3216570., 3222492., 3228414., 3234336.,
      3705590., 3712380., 3719170., 3725960., 3761660., 3768520., 3775380.,
      3782240., 4237920., 4245760., 4253600., 4261440., 4302000., 4309920.,
      4317840., 4325760., 4770510., 4779420., 4788330., 4797240., 4842600.,
      4851600., 4860600., 4869600., 5303200., 5313200., 5323200., 5333200.,
      5383300., 5393400., 5403500., 5413600., 4769970., 4779060., 4788150.,
      4797240., 4842060., 4851240., 4860420., 4869600., 4236960., 4245120.,
      4253280., 4261440., 4301040., 4309280., 4317520., 4325760., 3704330.,
      3711540., 3718750., 3725960., 3760400., 3767680., 3774960., 3782240.,
      3163461., 3170202., 3176943., 3183684., 3213924., 3220728., 3227532.,
      3234336., 3612288., 3620064., 3627840., 3635616., 3669960., 3677808.,
      3685656., 3693504., 4059909., 4068738., 4077567., 4086396., 4124790.,
      4133700., 4142610., 4151520., 4506180., 4516080., 4525980., 4535880.,
      4578270., 4588260., 4598250., 4608240., 4046463., 4055454., 4064445.,
      4073436., 4111344., 4120416., 4129488., 4138560., 3588384., 3596448.,
      3604512., 3612576., 3646056., 3654192., 3662328., 3670464., 3132087.,
      3139206., 3146325., 3153444., 3182550., 3189732., 3196914., 3204096.,
      2629592., 2636144., 2642696., 2649248., 2674448., 2681056., 2687664.,
      2694272., 2997376., 3004928., 3012480., 3020032., 3048640., 3056256.,
      3063872., 3071488., 3362808., 3371376., 3379944., 3388512., 3420480.,
      3429120., 3437760., 3446400., 3725760., 3735360., 3744960., 3754560.,
      3789840., 3799520., 3809200., 3818880., 3339336., 3348048., 3356760.,
      3365472., 3397008., 3405792., 3414576., 3423360., 2955648., 2963456.,
      2971264., 2979072., 3006912., 3014784., 3022656., 3030528., 2574824.,
      2581712., 2588600., 2595488., 2619680., 2626624., 2633568., 2640512.,
      2115183., 2121406., 2127629., 2133852., 2154432., 2160704., 2166976.,
      2173248., 2405984., 2413152., 2420320., 2427488., 2450840., 2458064.,
      2465288., 2472512., 2693607., 2701734., 2709861., 2717988., 2744070.,
      2752260., 2760450., 2768640., 2977940., 2987040., 2996140., 3005240.,
      3034010., 3043180., 3052350., 3061520., 2662989., 2671242., 2679495.,
      2687748., 2713452., 2721768., 2730084., 2738400., 2351552., 2358944.,
      2366336., 2373728., 2396408., 2403856., 2411304., 2418752., 2043741.,
      2050258., 2056775., 2063292., 2082990., 2089556., 2096122., 2102688.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      46304.,  46848.,  47392.,  47936.,  49520.,  50080.,  50640.,  51200.,
      48256.,  48832.,  49408.,  49984.,  51600.,  52192.,  52784.,  53376.,
      50208.,  50816.,  51424.,  52032.,  53680.,  54304.,  54928.,  55552.,
      52160.,  52800.,  53440.,  54080.,  55760.,  56416.,  57072.,  57728.,
      54112.,  54784.,  55456.,  56128.,  57840.,  58528.,  59216.,  59904.,
      56064.,  56768.,  57472.,  58176.,  59920.,  60640.,  61360.,  62080.,
      58016.,  58752.,  59488.,  60224.,  62000.,  62752.,  63504.,  64256.,
      65824.,  66688.,  67552.,  68416.,  70320.,  71200.,  72080.,  72960.,
      67776.,  68672.,  69568.,  70464.,  72400.,  73312.,  74224.,  75136.,
      69728.,  70656.,  71584.,  72512.,  74480.,  75424.,  76368.,  77312.,
      71680.,  72640.,  73600.,  74560.,  76560.,  77536.,  78512.,  79488.,
      73632.,  74624.,  75616.,  76608.,  78640.,  79648.,  80656.,  81664.,
      75584.,  76608.,  77632.,  78656.,  80720.,  81760.,  82800.,  83840.,
      77536.,  78592.,  79648.,  80704.,  82800.,  83872.,  84944.,  86016.,
      85344.,  86528.,  87712.,  88896.,  91120.,  92320.,  93520.,  94720.,
      87296.,  88512.,  89728.,  90944.,  93200.,  94432.,  95664.,  96896.,
      89248.,  90496.,  91744.,  92992.,  95280.,  96544.,  97808.,  99072.,
      91200.,  92480.,  93760.,  95040.,  97360.,  98656.,  99952.,  101248.,
      93152.,  94464.,  95776.,  97088.,  99440.,  100768., 102096., 103424.,
      95104.,  96448.,  97792.,  99136.,  101520., 102880., 104240., 105600.,
      97056.,  98432.,  99808.,  101184., 103600., 104992., 106384., 107776.,
      104864., 106368., 107872., 109376., 111920., 113440., 114960., 116480.,
      106816., 108352., 109888., 111424., 114000., 115552., 117104., 118656.,
      108768., 110336., 111904., 113472., 116080., 117664., 119248., 120832.,
      110720., 112320., 113920., 115520., 118160., 119776., 121392., 123008.,
      112672., 114304., 115936., 117568., 120240., 121888., 123536., 125184.,
      114624., 116288., 117952., 119616., 122320., 124000., 125680., 127360.,
      116576., 118272., 119968., 121664., 124400., 126112., 127824., 129536.,
      124384., 126208., 128032., 129856., 132720., 134560., 136400., 138240.,
      126336., 128192., 130048., 131904., 134800., 136672., 138544., 140416.,
      128288., 130176., 132064., 133952., 136880., 138784., 140688., 142592.,
      130240., 132160., 134080., 136000., 138960., 140896., 142832., 144768.,
      132192., 134144., 136096., 138048., 141040., 143008., 144976., 146944.,
      134144., 136128., 138112., 140096., 143120., 145120., 147120., 149120.,
      136096., 138112., 140128., 142144., 145200., 147232., 149264., 151296.,
      143904., 146048., 148192., 150336., 153520., 155680., 157840., 160000.,
      145856., 148032., 150208., 152384., 155600., 157792., 159984., 162176.,
      147808., 150016., 152224., 154432., 157680., 159904., 162128., 164352.,
      149760., 152000., 154240., 156480., 159760., 162016., 164272., 166528.,
      151712., 153984., 156256., 158528., 161840., 164128., 166416., 168704.,
      153664., 155968., 158272., 160576., 163920., 166240., 168560., 170880.,
      155616., 157952., 160288., 162624., 166000., 168352., 170704., 173056.,
      163424., 165888., 168352., 170816., 174320., 176800., 179280., 181760.,
      165376., 167872., 170368., 172864., 176400., 178912., 181424., 183936.,
      167328., 169856., 172384., 174912., 178480., 181024., 183568., 186112.,
      169280., 171840., 174400., 176960., 180560., 183136., 185712., 188288.,
      171232., 173824., 176416., 179008., 182640., 185248., 187856., 190464.,
      173184., 175808., 178432., 181056., 184720., 187360., 190000., 192640.,
      175136., 177792., 180448., 183104., 186800., 189472., 192144., 194816.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2043741., 2063292., 2082941., 2102688., 2351384., 2373728., 2396184.,
      2418752., 2662611., 2687748., 2713011., 2738400., 2977310., 3005240.,
      3033310., 3061520., 2692851., 2717988., 2743251., 2768640., 2405144.,
      2427488., 2449944., 2472512., 2114301., 2133852., 2153501., 2173248.,
      2573144., 2595488., 2617944., 2640512., 2953536., 2979072., 3004736.,
      3030528., 3336744., 3365472., 3394344., 3423360., 3722640., 3754560.,
      3786640., 3818880., 3359784., 3388512., 3417384., 3446400., 2994496.,
      3020032., 3045696., 3071488., 2626904., 2649248., 2671704., 2694272.,
      3128307., 3153444., 3178707., 3204096., 3583848., 3612576., 3641448.,
      3670464., 4041117., 4073436., 4105917., 4138560., 4499970., 4535880.,
      4571970., 4608240., 4054077., 4086396., 4118877., 4151520., 3606888.,
      3635616., 3664488., 3693504., 3158547., 3183684., 3208947., 3234336.,
      3698030., 3725960., 3754030., 3782240., 4229520., 4261440., 4293520.,
      4325760., 4761330., 4797240., 4833330., 4869600., 5293300., 5333200.,
      5373300., 5413600., 4761330., 4797240., 4833330., 4869600., 4229520.,
      4261440., 4293520., 4325760., 3698030., 3725960., 3754030., 3782240.,
      3158547., 3183684., 3208947., 3234336., 3606888., 3635616., 3664488.,
      3693504., 4054077., 4086396., 4118877., 4151520., 4499970., 4535880.,
      4571970., 4608240., 4041117., 4073436., 4105917., 4138560., 3583848.,
      3612576., 3641448., 3670464., 3128307., 3153444., 3178707., 3204096.,
      2626904., 2649248., 2671704., 2694272., 2994496., 3020032., 3045696.,
      3071488., 3359784., 3388512., 3417384., 3446400., 3722640., 3754560.,
      3786640., 3818880., 3336744., 3365472., 3394344., 3423360., 2953536.,
      2979072., 3004736., 3030528., 2573144., 2595488., 2617944., 2640512.,
      2114301., 2133852., 2153501., 2173248., 2405144., 2427488., 2449944.,
      2472512., 2692851., 2717988., 2743251., 2768640., 2977310., 3005240.,
      3033310., 3061520., 2662611., 2687748., 2713011., 2738400., 2351384.,
      2373728., 2396184., 2418752., 2043741., 2063292., 2082941., 2102688.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      46352.,  47936.,  49552.,  51200.,  48336.,  49984.,  51664.,  53376.,
      50320.,  52032.,  53776.,  55552.,  52304.,  54080.,  55888.,  57728.,
      54288.,  56128.,  58000.,  59904.,  56272.,  58176.,  60112.,  62080.,
      58256.,  60224.,  62224.,  64256.,  66192.,  68416.,  70672.,  72960.,
      68176.,  70464.,  72784.,  75136.,  70160.,  72512.,  74896.,  77312.,
      72144.,  74560.,  77008.,  79488.,  74128.,  76608.,  79120.,  81664.,
      76112.,  78656.,  81232.,  83840.,  78096.,  80704.,  83344.,  86016.,
      86032.,  88896.,  91792.,  94720.,  88016.,  90944.,  93904.,  96896.,
      90000.,  92992.,  96016.,  99072.,  91984.,  95040.,  98128.,  101248.,
      93968.,  97088.,  100240., 103424., 95952.,  99136.,  102352., 105600.,
      97936.,  101184., 104464., 107776., 105872., 109376., 112912., 116480.,
      107856., 111424., 115024., 118656., 109840., 113472., 117136., 120832.,
      111824., 115520., 119248., 123008., 113808., 117568., 121360., 125184.,
      115792., 119616., 123472., 127360., 117776., 121664., 125584., 129536.,
      125712., 129856., 134032., 138240., 127696., 131904., 136144., 140416.,
      129680., 133952., 138256., 142592., 131664., 136000., 140368., 144768.,
      133648., 138048., 142480., 146944., 135632., 140096., 144592., 149120.,
      137616., 142144., 146704., 151296., 145552., 150336., 155152., 160000.,
      147536., 152384., 157264., 162176., 149520., 154432., 159376., 164352.,
      151504., 156480., 161488., 166528., 153488., 158528., 163600., 168704.,
      155472., 160576., 165712., 170880., 157456., 162624., 167824., 173056.,
      165392., 170816., 176272., 181760., 167376., 172864., 178384., 183936.,
      169360., 174912., 180496., 186112., 171344., 176960., 182608., 188288.,
      173328., 179008., 184720., 190464., 175312., 181056., 186832., 192640.,
      177296., 183104., 188944., 194816.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4080965.,  4087482.,  4120018.,  4126584.,  4159267.,  4165882.,
      4198712.,  4205376.,  4695208.,  4702768.,  4739840.,  4747456.,
      4784696.,  4792368.,  4829776.,  4837504.,  5316591.,  5325222.,
      5366802.,  5375496.,  5417265.,  5426022.,  5467980.,  5476800.,
      5944890.,  5954620.,  6000680.,  6010480.,  6056750.,  6066620.,
      6113100.,  6123040.,  5376819.,  5385702.,  5427030.,  5435976.,
      5477493.,  5486502.,  5528208.,  5537280.,  4802280.,  4810288.,
      4846912.,  4854976.,  4891768.,  4899888.,  4936848.,  4945024.,
      4221497.,  4228602.,  4260550.,  4267704.,  4299799.,  4307002.,
      4339244.,  4346496.,  5137720.,  5146288.,  5182352.,  5190976.,
      5227208.,  5235888.,  5272288.,  5281024.,  5897152.,  5907072.,
      5948160.,  5958144.,  5999424.,  6009472.,  6050944.,  6061056.,
      6662184.,  6673488.,  6719568.,  6730944.,  6777240.,  6788688.,
      6835200.,  6846720.,  7432560.,  7445280.,  7496320.,  7509120.,
      7560400.,  7573280.,  7624800.,  7637760.,  6707976.,  6719568.,
      6765360.,  6777024.,  6823032.,  6834768.,  6880992.,  6892800.,
      5978560.,  5988992.,  6029568.,  6040064.,  6080832.,  6091392.,
      6132352.,  6142976.,  5244568.,  5253808.,  5289200.,  5298496.,
      5334056.,  5343408.,  5379136.,  5388544.,  6245715.,  6256614.,
      6295926.,  6306888.,  6346389.,  6357414.,  6397104.,  6408192.,
      7155096.,  7167696.,  7212480.,  7225152.,  7270152.,  7282896.,
      7328112.,  7340928.,  8067897.,  8082234.,  8132454.,  8146872.,
      8197335.,  8211834.,  8262540.,  8277120.,  8983830.,  8999940.,
      9055560.,  9071760.,  9127650.,  9143940.,  9200100.,  9216480.,
      8093493.,  8108154.,  8158050.,  8172792.,  8222931.,  8237754.,
      8288136.,  8303040.,  7200600.,  7213776.,  7257984.,  7271232.,
      7315656.,  7328976.,  7373616.,  7387008.,  6305439.,  6317094.,
      6355650.,  6367368.,  6406113.,  6417894.,  6456828.,  6468672.,
      7382550.,  7396060.,  7438340.,  7451920.,  7494410.,  7508060.,
      7550760.,  7564480.,  8443440.,  8459040.,  8507200.,  8522880.,
      8571280.,  8587040.,  8635680.,  8651520.,  9504930.,  9522660.,
      9576660.,  9594480.,  9648750.,  9666660.,  9721200.,  9739200.,
      10566700., 10586600., 10646400., 10666400., 10726500., 10746600.,
      10807000., 10827200., 9504570.,  9522660.,  9576300.,  9594480.,
      9648390.,  9666660.,  9720840.,  9739200.,  8442800.,  8459040.,
      8506560.,  8522880.,  8570640.,  8587040.,  8635040.,  8651520.,
      7381710.,  7396060.,  7437500.,  7451920.,  7493570.,  7508060.,
      7549920.,  7564480.,  6303675.,  6317094.,  6353886.,  6367368.,
      6404349.,  6417894.,  6455064.,  6468672.,  7198296.,  7213776.,
      7255680.,  7271232.,  7313352.,  7328976.,  7371312.,  7387008.,
      8090577.,  8108154.,  8155134.,  8172792.,  8220015.,  8237754.,
      8285220.,  8303040.,  8980230.,  8999940.,  9051960.,  9071760.,
      9124050.,  9143940.,  9196500.,  9216480.,  8064333.,  8082234.,
      8128890.,  8146872.,  8193771.,  8211834.,  8258976.,  8277120.,
      7151640.,  7167696.,  7209024.,  7225152.,  7266696.,  7282896.,
      7324656.,  7340928.,  6242439.,  6256614.,  6292650.,  6306888.,
      6343113.,  6357414.,  6393828.,  6408192.,  5240760.,  5253808.,
      5285392.,  5298496.,  5330248.,  5343408.,  5375328.,  5388544.,
      5973952.,  5988992.,  6024960.,  6040064.,  6076224.,  6091392.,
      6127744.,  6142976.,  6702504.,  6719568.,  6759888.,  6777024.,
      6817560.,  6834768.,  6875520.,  6892800.,  7426160.,  7445280.,
      7489920.,  7509120.,  7554000.,  7573280.,  7618400.,  7637760.,
      6656136.,  6673488.,  6713520.,  6730944.,  6771192.,  6788688.,
      6829152.,  6846720.,  5891520.,  5907072.,  5942528.,  5958144.,
      5993792.,  6009472.,  6045312.,  6061056.,  5132568.,  5146288.,
      5177200.,  5190976.,  5222056.,  5235888.,  5267136.,  5281024.,
      4216205.,  4228602.,  4255258.,  4267704.,  4294507.,  4307002.,
      4333952.,  4346496.,  4796008.,  4810288.,  4840640.,  4854976.,
      4885496.,  4899888.,  4930576.,  4945024.,  5369511.,  5385702.,
      5419722.,  5435976.,  5470185.,  5486502.,  5520900.,  5537280.,
      5936490.,  5954620.,  5992280.,  6010480.,  6048350.,  6066620.,
      6104700.,  6123040.,  5308779.,  5325222.,  5358990.,  5375496.,
      5409453.,  5426022.,  5460168.,  5476800.,  4688040.,  4702768.,
      4732672.,  4747456.,  4777528.,  4792368.,  4822608.,  4837504.,
      4074497.,  4087482.,  4113550.,  4126584.,  4152799.,  4165882.,
      4192244.,  4205376.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      91632.,  92704.,  94784.,  95872.,  98000.,  99104.,  101280., 102400.,
      95536.,  96672.,  98816.,  99968.,  102160., 103328., 105568., 106752.,
      99440.,  100640., 102848., 104064., 106320., 107552., 109856., 111104.,
      103344., 104608., 106880., 108160., 110480., 111776., 114144., 115456.,
      107248., 108576., 110912., 112256., 114640., 116000., 118432., 119808.,
      111152., 112544., 114944., 116352., 118800., 120224., 122720., 124160.,
      115056., 116512., 118976., 120448., 122960., 124448., 127008., 128512.,
      130672., 132384., 135104., 136832., 139600., 141344., 144160., 145920.,
      134576., 136352., 139136., 140928., 143760., 145568., 148448., 150272.,
      138480., 140320., 143168., 145024., 147920., 149792., 152736., 154624.,
      142384., 144288., 147200., 149120., 152080., 154016., 157024., 158976.,
      146288., 148256., 151232., 153216., 156240., 158240., 161312., 163328.,
      150192., 152224., 155264., 157312., 160400., 162464., 165600., 167680.,
      154096., 156192., 159296., 161408., 164560., 166688., 169888., 172032.,
      169712., 172064., 175424., 177792., 181200., 183584., 187040., 189440.,
      173616., 176032., 179456., 181888., 185360., 187808., 191328., 193792.,
      177520., 180000., 183488., 185984., 189520., 192032., 195616., 198144.,
      181424., 183968., 187520., 190080., 193680., 196256., 199904., 202496.,
      185328., 187936., 191552., 194176., 197840., 200480., 204192., 206848.,
      189232., 191904., 195584., 198272., 202000., 204704., 208480., 211200.,
      193136., 195872., 199616., 202368., 206160., 208928., 212768., 215552.,
      208752., 211744., 215744., 218752., 222800., 225824., 229920., 232960.,
      212656., 215712., 219776., 222848., 226960., 230048., 234208., 237312.,
      216560., 219680., 223808., 226944., 231120., 234272., 238496., 241664.,
      220464., 223648., 227840., 231040., 235280., 238496., 242784., 246016.,
      224368., 227616., 231872., 235136., 239440., 242720., 247072., 250368.,
      228272., 231584., 235904., 239232., 243600., 246944., 251360., 254720.,
      232176., 235552., 239936., 243328., 247760., 251168., 255648., 259072.,
      247792., 251424., 256064., 259712., 264400., 268064., 272800., 276480.,
      251696., 255392., 260096., 263808., 268560., 272288., 277088., 280832.,
      255600., 259360., 264128., 267904., 272720., 276512., 281376., 285184.,
      259504., 263328., 268160., 272000., 276880., 280736., 285664., 289536.,
      263408., 267296., 272192., 276096., 281040., 284960., 289952., 293888.,
      267312., 271264., 276224., 280192., 285200., 289184., 294240., 298240.,
      271216., 275232., 280256., 284288., 289360., 293408., 298528., 302592.,
      286832., 291104., 296384., 300672., 306000., 310304., 315680., 320000.,
      290736., 295072., 300416., 304768., 310160., 314528., 319968., 324352.,
      294640., 299040., 304448., 308864., 314320., 318752., 324256., 328704.,
      298544., 303008., 308480., 312960., 318480., 322976., 328544., 333056.,
      302448., 306976., 312512., 317056., 322640., 327200., 332832., 337408.,
      306352., 310944., 316544., 321152., 326800., 331424., 337120., 341760.,
      310256., 314912., 320576., 325248., 330960., 335648., 341408., 346112.,
      325872., 330784., 336704., 341632., 347600., 352544., 358560., 363520.,
      329776., 334752., 340736., 345728., 351760., 356768., 362848., 367872.,
      333680., 338720., 344768., 349824., 355920., 360992., 367136., 372224.,
      337584., 342688., 348800., 353920., 360080., 365216., 371424., 376576.,
      341488., 346656., 352832., 358016., 364240., 369440., 375712., 380928.,
      345392., 350624., 356864., 362112., 368400., 373664., 380000., 385280.,
      349296., 354592., 360896., 366208., 372560., 377888., 384288., 389632.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME1x10x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2745621., 2752138., 2758655., 2765172., 2796030., 2802596., 2809162.,
      2815728., 2846831., 2853446., 2860061., 2866676., 2898024., 2904688.,
      2911352., 2918016., 3245000., 3252560., 3260120., 3267680., 3303488.,
      3311104., 3318720., 3326336., 3362424., 3370096., 3377768., 3385440.,
      3421808., 3429536., 3437264., 3444992., 3746343., 3754974., 3763605.,
      3772236., 3812910., 3821604., 3830298., 3838992., 3879981., 3888738.,
      3897495., 3906252., 3947556., 3956376., 3965196., 3974016., 4249202.,
      4258932., 4268662., 4278392., 4323848., 4333648., 4343448., 4353248.,
      4399054., 4408924., 4418794., 4428664., 4474820., 4484760., 4494700.,
      4504640., 3871667., 3880550., 3889433., 3898316., 3939258., 3948204.,
      3957150., 3966096., 4007353., 4016362., 4025371., 4034380., 4075952.,
      4085024., 4094096., 4103168., 3497608., 3505616., 3513624., 3521632.,
      3558144., 3566208., 3574272., 3582336., 3619128., 3627248., 3635368.,
      3643488., 3680560., 3688736., 3696912., 3705088., 3127473., 3134578.,
      3141683., 3148788., 3180954., 3188108., 3195262., 3202416., 3234827.,
      3242030., 3249233., 3256436., 3289092., 3296344., 3303596., 3310848.,
      3751160., 3759728., 3768296., 3776864., 3812720., 3821344., 3829968.,
      3838592., 3874728., 3883408., 3892088., 3900768., 3937184., 3945920.,
      3954656., 3963392., 4417728., 4427648., 4437568., 4447488., 4488960.,
      4498944., 4508928., 4518912., 4560704., 4570752., 4580800., 4590848.,
      4632960., 4643072., 4653184., 4663296., 5083176., 5094480., 5105784.,
      5117088., 5164080., 5175456., 5186832., 5198208., 5245560., 5257008.,
      5268456., 5279904., 5327616., 5339136., 5350656., 5362176., 5746992.,
      5759712., 5772432., 5785152., 5837568., 5850368., 5863168., 5875968.,
      5928784., 5941664., 5954544., 5967424., 6020640., 6033600., 6046560.,
      6059520., 5220552., 5232144., 5243736., 5255328., 5302480., 5314144.,
      5325808., 5337472., 5384984., 5396720., 5408456., 5420192., 5468064.,
      5479872., 5491680., 5503488., 4700864., 4711296., 4721728., 4732160.,
      4774144., 4784640., 4795136., 4805632., 4847936., 4858496., 4869056.,
      4879616., 4922240., 4932864., 4943488., 4954112., 4188440., 4197680.,
      4206920., 4216160., 4253072., 4262368., 4271664., 4280960., 4318152.,
      4327504., 4336856., 4346208., 4383680., 4393088., 4402496., 4411904.,
      4858899., 4869798., 4880697., 4891596., 4931610., 4942572., 4953534.,
      4964496., 5004825., 5015850., 5026875., 5037900., 5078544., 5089632.,
      5100720., 5111808., 5702136., 5714736., 5727336., 5739936., 5786112.,
      5798784., 5811456., 5824128., 5870664., 5883408., 5896152., 5908896.,
      5955792., 5968608., 5981424., 5994240., 6539889., 6554226., 6568563.,
      6582900., 6635130., 6649548., 6663966., 6678384., 6731019., 6745518.,
      6760017., 6774516., 6827556., 6842136., 6856716., 6871296., 7371582.,
      7387692., 7403802., 7419912., 7478088., 7494288., 7510488., 7526688.,
      7585314., 7601604., 7617894., 7634184., 7693260., 7709640., 7726020.,
      7742400., 6677797., 6692458., 6707119., 6721780., 6774062., 6788804.,
      6803546., 6818288., 6870975., 6885798., 6900621., 6915444., 6968536.,
      6983440., 6998344., 7013248., 5995320., 6008496., 6021672., 6034848.,
      6081344., 6094592., 6107840., 6121088., 6167944., 6181264., 6194584.,
      6207904., 6255120., 6268512., 6281904., 6295296., 5324727., 5336382.,
      5348037., 5359692., 5400510., 5412228., 5423946., 5435664., 5476797.,
      5488578., 5500359., 5512140., 5553588., 5565432., 5577276., 5589120.,
      6024038., 6037548., 6051058., 6064568., 6107900., 6121480., 6135060.,
      6148640., 6192322., 6205972., 6219622., 6233272., 6277304., 6291024.,
      6304744., 6318464., 7047024., 7062624., 7078224., 7093824., 7143744.,
      7159424., 7175104., 7190784., 7241104., 7256864., 7272624., 7288384.,
      7339104., 7354944., 7370784., 7386624., 8058882., 8076612., 8094342.,
      8112072., 8168460., 8186280., 8204100., 8221920., 8278758., 8296668.,
      8314578., 8332488., 8389776., 8407776., 8425776., 8443776., 9058972.,
      9078872., 9098772., 9118672., 9181408., 9201408., 9221408., 9241408.,
      9304644., 9324744., 9344844., 9364944., 9428680., 9448880., 9469080.,
      9489280., 8185802., 8203892., 8221982., 8240072., 8296404., 8314584.,
      8332764., 8350944., 8407726., 8425996., 8444266., 8462536., 8519768.,
      8538128., 8556488., 8574848., 7329776., 7346016., 7362256., 7378496.,
      7428544., 7444864., 7461184., 7477504., 7527952., 7544352., 7560752.,
      7577152., 7628000., 7644480., 7660960., 7677440., 6491534., 6505884.,
      6520234., 6534584., 6578468., 6592888., 6607308., 6621728., 6665962.,
      6680452., 6694942., 6709432., 6754016., 6768576., 6783136., 6797696.,
      5720843., 5734262., 5747681., 5761100., 5800722., 5814204., 5827686.,
      5841168., 5881105., 5894650., 5908195., 5921740., 5961992., 5975600.,
      5989208., 6002816., 6727736., 6743216., 6758696., 6774176., 6819904.,
      6835456., 6851008., 6866560., 6912648., 6928272., 6943896., 6959520.,
      7005968., 7021664., 7037360., 7053056., 7721721., 7739298., 7756875.,
      7774452., 7826178., 7843836., 7861494., 7879152., 7931283., 7949022.,
      7966761., 7984500., 8037036., 8054856., 8072676., 8090496., 8702222.,
      8721932., 8741642., 8761352., 8818968., 8838768., 8858568., 8878368.,
      8936434., 8956324., 8976214., 8996104., 9054620., 9074600., 9094580.,
      9114560., 7874733., 7892634., 7910535., 7928436., 7980214., 7998196.,
      8016178., 8034160., 8086343., 8104406., 8122469., 8140532., 8193120.,
      8211264., 8229408., 8247552., 7065976., 7082032., 7098088., 7114144.,
      7160192., 7176320., 7192448., 7208576., 7254984., 7271184., 7287384.,
      7303584., 7350352., 7366624., 7382896., 7399168., 6276527., 6290702.,
      6304877., 6319052., 6359478., 6373716., 6387954., 6402192., 6442933.,
      6457234., 6471535., 6485836., 6526892., 6541256., 6555620., 6569984.,
      5736568., 5749616., 5762664., 5775712., 5812464., 5825568., 5838672.,
      5851776., 5888808., 5901968., 5915128., 5928288., 5965600., 5978816.,
      5992032., 6005248., 6778048., 6793088., 6808128., 6823168., 6865664.,
      6880768., 6895872., 6910976., 6953792., 6968960., 6984128., 6999296.,
      7042432., 7057664., 7072896., 7088128., 7806120., 7823184., 7840248.,
      7857312., 7905456., 7922592., 7939728., 7956864., 8005368., 8022576.,
      8039784., 8056992., 8105856., 8123136., 8140416., 8157696., 8820272.,
      8839392., 8858512., 8877632., 8931328., 8950528., 8969728., 8988928.,
      9043024., 9062304., 9081584., 9100864., 9155360., 9174720., 9194080.,
      9213440., 7996744., 8014096., 8031448., 8048800., 8097104., 8114528.,
      8131952., 8149376., 8198040., 8215536., 8233032., 8250528., 8299552.,
      8317120., 8334688., 8352256., 7192256., 7207808., 7223360., 7238912.,
      7281920., 7297536., 7313152., 7328768., 7372096., 7387776., 7403456.,
      7419136., 7462784., 7478528., 7494272., 7510016., 6407320., 6421040.,
      6434760., 6448480., 6486288., 6500064., 6513840., 6527616., 6565704.,
      6579536., 6593368., 6607200., 6645568., 6659456., 6673344., 6687232.,
      6116013., 6128410., 6140807., 6153204., 6187926., 6200372., 6212818.,
      6225264., 6260231., 6272726., 6285221., 6297716., 6332928., 6345472.,
      6358016., 6370560., 7249160., 7263440., 7277720., 7292000., 7332224.,
      7346560., 7360896., 7375232., 7415736., 7430128., 7444520., 7458912.,
      7499696., 7514144., 7528592., 7543040., 8369679., 8385870., 8402061.,
      8418252., 8463894., 8480148., 8496402., 8512656., 8558613., 8574930.,
      8591247., 8607564., 8653836., 8670216., 8686596., 8702976., 9477122.,
      9495252., 9513382., 9531512., 9582488., 9600688., 9618888., 9637088.,
      9688414., 9706684., 9724954., 9743224., 9794900., 9813240., 9831580.,
      9849920., 8609435., 8625878., 8642321., 8658764., 8704674., 8721180.,
      8737686., 8754192., 8800417., 8816986., 8833555., 8850124., 8896664.,
      8913296., 8929928., 8946560., 7759816., 7774544., 7789272., 7804000.,
      7844928., 7859712., 7874496., 7889280., 7930488., 7945328., 7960168.,
      7975008., 8016496., 8031392., 8046288., 8061184., 6928713., 6941698.,
      6954683., 6967668., 7003698., 7016732., 7029766., 7042800., 7079075.,
      7092158., 7105241., 7118324., 7154844., 7167976., 7181108., 7194240.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID1x10x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      182192., 183264., 184336., 185408., 188480., 189568., 190656., 191744.,
      194896., 196000., 197104., 198208., 201440., 202560., 203680., 204800.,
      189936., 191072., 192208., 193344., 196480., 197632., 198784., 199936.,
      203152., 204320., 205488., 206656., 209952., 211136., 212320., 213504.,
      197680., 198880., 200080., 201280., 204480., 205696., 206912., 208128.,
      211408., 212640., 213872., 215104., 218464., 219712., 220960., 222208.,
      205424., 206688., 207952., 209216., 212480., 213760., 215040., 216320.,
      219664., 220960., 222256., 223552., 226976., 228288., 229600., 230912.,
      213168., 214496., 215824., 217152., 220480., 221824., 223168., 224512.,
      227920., 229280., 230640., 232000., 235488., 236864., 238240., 239616.,
      220912., 222304., 223696., 225088., 228480., 229888., 231296., 232704.,
      236176., 237600., 239024., 240448., 244000., 245440., 246880., 248320.,
      228656., 230112., 231568., 233024., 236480., 237952., 239424., 240896.,
      244432., 245920., 247408., 248896., 252512., 254016., 255520., 257024.,
      259632., 261344., 263056., 264768., 268480., 270208., 271936., 273664.,
      277456., 279200., 280944., 282688., 286560., 288320., 290080., 291840.,
      267376., 269152., 270928., 272704., 276480., 278272., 280064., 281856.,
      285712., 287520., 289328., 291136., 295072., 296896., 298720., 300544.,
      275120., 276960., 278800., 280640., 284480., 286336., 288192., 290048.,
      293968., 295840., 297712., 299584., 303584., 305472., 307360., 309248.,
      282864., 284768., 286672., 288576., 292480., 294400., 296320., 298240.,
      302224., 304160., 306096., 308032., 312096., 314048., 316000., 317952.,
      290608., 292576., 294544., 296512., 300480., 302464., 304448., 306432.,
      310480., 312480., 314480., 316480., 320608., 322624., 324640., 326656.,
      298352., 300384., 302416., 304448., 308480., 310528., 312576., 314624.,
      318736., 320800., 322864., 324928., 329120., 331200., 333280., 335360.,
      306096., 308192., 310288., 312384., 316480., 318592., 320704., 322816.,
      326992., 329120., 331248., 333376., 337632., 339776., 341920., 344064.,
      337072., 339424., 341776., 344128., 348480., 350848., 353216., 355584.,
      360016., 362400., 364784., 367168., 371680., 374080., 376480., 378880.,
      344816., 347232., 349648., 352064., 356480., 358912., 361344., 363776.,
      368272., 370720., 373168., 375616., 380192., 382656., 385120., 387584.,
      352560., 355040., 357520., 360000., 364480., 366976., 369472., 371968.,
      376528., 379040., 381552., 384064., 388704., 391232., 393760., 396288.,
      360304., 362848., 365392., 367936., 372480., 375040., 377600., 380160.,
      384784., 387360., 389936., 392512., 397216., 399808., 402400., 404992.,
      368048., 370656., 373264., 375872., 380480., 383104., 385728., 388352.,
      393040., 395680., 398320., 400960., 405728., 408384., 411040., 413696.,
      375792., 378464., 381136., 383808., 388480., 391168., 393856., 396544.,
      401296., 404000., 406704., 409408., 414240., 416960., 419680., 422400.,
      383536., 386272., 389008., 391744., 396480., 399232., 401984., 404736.,
      409552., 412320., 415088., 417856., 422752., 425536., 428320., 431104.,
      414512., 417504., 420496., 423488., 428480., 431488., 434496., 437504.,
      442576., 445600., 448624., 451648., 456800., 459840., 462880., 465920.,
      422256., 425312., 428368., 431424., 436480., 439552., 442624., 445696.,
      450832., 453920., 457008., 460096., 465312., 468416., 471520., 474624.,
      430000., 433120., 436240., 439360., 444480., 447616., 450752., 453888.,
      459088., 462240., 465392., 468544., 473824., 476992., 480160., 483328.,
      437744., 440928., 444112., 447296., 452480., 455680., 458880., 462080.,
      467344., 470560., 473776., 476992., 482336., 485568., 488800., 492032.,
      445488., 448736., 451984., 455232., 460480., 463744., 467008., 470272.,
      475600., 478880., 482160., 485440., 490848., 494144., 497440., 500736.,
      453232., 456544., 459856., 463168., 468480., 471808., 475136., 478464.,
      483856., 487200., 490544., 493888., 499360., 502720., 506080., 509440.,
      460976., 464352., 467728., 471104., 476480., 479872., 483264., 486656.,
      492112., 495520., 498928., 502336., 507872., 511296., 514720., 518144.,
      491952., 495584., 499216., 502848., 508480., 512128., 515776., 519424.,
      525136., 528800., 532464., 536128., 541920., 545600., 549280., 552960.,
      499696., 503392., 507088., 510784., 516480., 520192., 523904., 527616.,
      533392., 537120., 540848., 544576., 550432., 554176., 557920., 561664.,
      507440., 511200., 514960., 518720., 524480., 528256., 532032., 535808.,
      541648., 545440., 549232., 553024., 558944., 562752., 566560., 570368.,
      515184., 519008., 522832., 526656., 532480., 536320., 540160., 544000.,
      549904., 553760., 557616., 561472., 567456., 571328., 575200., 579072.,
      522928., 526816., 530704., 534592., 540480., 544384., 548288., 552192.,
      558160., 562080., 566000., 569920., 575968., 579904., 583840., 587776.,
      530672., 534624., 538576., 542528., 548480., 552448., 556416., 560384.,
      566416., 570400., 574384., 578368., 584480., 588480., 592480., 596480.,
      538416., 542432., 546448., 550464., 556480., 560512., 564544., 568576.,
      574672., 578720., 582768., 586816., 592992., 597056., 601120., 605184.,
      569392., 573664., 577936., 582208., 588480., 592768., 597056., 601344.,
      607696., 612000., 616304., 620608., 627040., 631360., 635680., 640000.,
      577136., 581472., 585808., 590144., 596480., 600832., 605184., 609536.,
      615952., 620320., 624688., 629056., 635552., 639936., 644320., 648704.,
      584880., 589280., 593680., 598080., 604480., 608896., 613312., 617728.,
      624208., 628640., 633072., 637504., 644064., 648512., 652960., 657408.,
      592624., 597088., 601552., 606016., 612480., 616960., 621440., 625920.,
      632464., 636960., 641456., 645952., 652576., 657088., 661600., 666112.,
      600368., 604896., 609424., 613952., 620480., 625024., 629568., 634112.,
      640720., 645280., 649840., 654400., 661088., 665664., 670240., 674816.,
      608112., 612704., 617296., 621888., 628480., 633088., 637696., 642304.,
      648976., 653600., 658224., 662848., 669600., 674240., 678880., 683520.,
      615856., 620512., 625168., 629824., 636480., 641152., 645824., 650496.,
      657232., 661920., 666608., 671296., 678112., 682816., 687520., 692224.,
      646832., 651744., 656656., 661568., 668480., 673408., 678336., 683264.,
      690256., 695200., 700144., 705088., 712160., 717120., 722080., 727040.,
      654576., 659552., 664528., 669504., 676480., 681472., 686464., 691456.,
      698512., 703520., 708528., 713536., 720672., 725696., 730720., 735744.,
      662320., 667360., 672400., 677440., 684480., 689536., 694592., 699648.,
      706768., 711840., 716912., 721984., 729184., 734272., 739360., 744448.,
      670064., 675168., 680272., 685376., 692480., 697600., 702720., 707840.,
      715024., 720160., 725296., 730432., 737696., 742848., 748000., 753152.,
      677808., 682976., 688144., 693312., 700480., 705664., 710848., 716032.,
      723280., 728480., 733680., 738880., 746208., 751424., 756640., 761856.,
      685552., 690784., 696016., 701248., 708480., 713728., 718976., 724224.,
      731536., 736800., 742064., 747328., 754720., 760000., 765280., 770560.,
      693296., 698592., 703888., 709184., 716480., 721792., 727104., 732416.,
      739792., 745120., 750448., 755776., 763232., 768576., 773920., 779264.};
  const std::array<int, 4> in_shape = {{1, 10, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      899300.,  1080435., 1261960., 1443860., 1264480., 1084755., 904700.,
      1092720., 1312362., 1532328., 1752600., 1534344., 1315818., 1097040.,
      1288420., 1546881., 1805552., 2064412., 1806728., 1548897., 1290940.,
      1485440., 1782840., 2080288., 2377760., 2080288., 1782840., 1485440.,
      1290940., 1548897., 1806728., 2064412., 1805552., 1546881., 1288420.,
      1097040., 1315818., 1534344., 1752600., 1532328., 1312362., 1092720.,
      904700.,  1084755., 1264480., 1443860., 1261960., 1080435., 899300.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7520.,  7598.,  7676.,  7754.,  7832.,  7910.,  7988.,  8144.,  8222.,
      8300.,  8378.,  8456.,  8534.,  8612.,  8768.,  8846.,  8924.,  9002.,
      9080.,  9158.,  9236.,  9392.,  9470.,  9548.,  9626.,  9704.,  9782.,
      9860.,  10016., 10094., 10172., 10250., 10328., 10406., 10484., 10640.,
      10718., 10796., 10874., 10952., 11030., 11108., 11264., 11342., 11420.,
      11498., 11576., 11654., 11732.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1792375., 1798600., 2153355., 2160870., 2515100., 2523920., 2877580.,
      2887720., 2520035., 2528960., 2161815., 2169510., 1802950., 1809400.,
      2177610., 2185440., 2615274., 2624724., 3053568., 3064656., 3492456.,
      3505200., 3057474., 3068688., 2621970., 2631636., 2185980., 2194080.,
      2567285., 2576840., 3082233., 3093762., 3597580., 3611104., 4113284.,
      4128824., 3599785., 3613456., 3086013., 3097794., 2572010., 2581880.,
      2959480., 2970880., 3551928., 3565680., 4144448., 4160576., 4736992.,
      4755520., 4144280., 4160576., 3551640., 3565680., 2959120., 2970880.,
      2571485., 2581880., 3085257., 3097794., 3598756., 3613456., 4111940.,
      4128824., 3596257., 3611104., 3080973., 3093762., 2566130., 2576840.,
      2184810., 2194080., 2620458., 2631636., 3055584., 3068688., 3490152.,
      3505200., 3051426., 3064656., 2613330., 2624724., 2175900., 2185440.,
      1801375., 1809400., 2159835., 2169510., 2517620., 2528960., 2874700.,
      2887720., 2512475., 2523920., 2151015., 2160870., 1790350., 1798600.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      14206., 15040., 14350., 15196., 14494., 15352., 14638., 15508., 14782.,
      15664., 14926., 15820., 15070., 15976., 15358., 16288., 15502., 16444.,
      15646., 16600., 15790., 16756., 15934., 16912., 16078., 17068., 16222.,
      17224., 16510., 17536., 16654., 17692., 16798., 17848., 16942., 18004.,
      17086., 18160., 17230., 18316., 17374., 18472., 17662., 18784., 17806.,
      18940., 17950., 19096., 18094., 19252., 18238., 19408., 18382., 19564.,
      18526., 19720., 18814., 20032., 18958., 20188., 19102., 20344., 19246.,
      20500., 19390., 20656., 19534., 20812., 19678., 20968., 19966., 21280.,
      20110., 21436., 20254., 21592., 20398., 21748., 20542., 21904., 20686.,
      22060., 20830., 22216., 21118., 22528., 21262., 22684., 21406., 22840.,
      21550., 22996., 21694., 23152., 21838., 23308., 21982., 23464.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3578525., 3584750., 3590975., 3597200., 4299195., 4306710., 4314225.,
      4321740., 5021380., 5030200., 5039020., 5047840., 5745020., 5755160.,
      5765300., 5775440., 5031145., 5040070., 5048995., 5057920., 4315935.,
      4323630., 4331325., 4339020., 3599450., 3605900., 3612350., 3618800.,
      4347390., 4355220., 4363050., 4370880., 5221098., 5230548., 5239998.,
      5249448., 6096048., 6107136., 6118224., 6129312., 6972168., 6984912.,
      6997656., 7010400., 6103734., 6114948., 6126162., 6137376., 5234274.,
      5243940., 5253606., 5263272., 4363860., 4371960., 4380060., 4388160.,
      5125015., 5134570., 5144125., 5153680., 6152937., 6164466., 6175995.,
      6187524., 7181636., 7195160., 7208684., 7222208., 8211028., 8226568.,
      8242108., 8257648., 7185899., 7199570., 7213241., 7226912., 6160245.,
      6172026., 6183807., 6195588., 5134150., 5144020., 5153890., 5163760.,
      5907560., 5918960., 5930360., 5941760., 7090104., 7103856., 7117608.,
      7131360., 8272768., 8288896., 8305024., 8321152., 9455456., 9473984.,
      9492512., 9511040., 8272264., 8288560., 8304856., 8321152., 7089240.,
      7103280., 7117320., 7131360., 5906480., 5918240., 5930000., 5941760.,
      5132575., 5142970., 5153365., 5163760., 6157977., 6170514., 6183051.,
      6195588., 7182812., 7197512., 7212212., 7226912., 8206996., 8223880.,
      8240764., 8257648., 7177667., 7192514., 7207361., 7222208., 6149157.,
      6161946., 6174735., 6187524., 5121550., 5132260., 5142970., 5153680.,
      4360350., 4369620., 4378890., 4388160., 5229738., 5240916., 5252094.,
      5263272., 6098064., 6111168., 6124272., 6137376., 6965256., 6980304.,
      6995352., 7010400., 6089622., 6102852., 6116082., 6129312., 5215266.,
      5226660., 5238054., 5249448., 4342260., 4351800., 4361340., 4370880.,
      3594725., 3602750., 3610775., 3618800., 4309995., 4319670., 4329345.,
      4339020., 5023900., 5035240., 5046580., 5057920., 5736380., 5749400.,
      5762420., 5775440., 5013505., 5024950., 5036395., 5047840., 4292175.,
      4302030., 4311885., 4321740., 3572450., 3580700., 3588950., 3597200.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      27578., 28412., 29246., 30080., 27854., 28700., 29546., 30392., 28130.,
      28988., 29846., 30704., 28406., 29276., 30146., 31016., 28682., 29564.,
      30446., 31328., 28958., 29852., 30746., 31640., 29234., 30140., 31046.,
      31952., 29786., 30716., 31646., 32576., 30062., 31004., 31946., 32888.,
      30338., 31292., 32246., 33200., 30614., 31580., 32546., 33512., 30890.,
      31868., 32846., 33824., 31166., 32156., 33146., 34136., 31442., 32444.,
      33446., 34448., 31994., 33020., 34046., 35072., 32270., 33308., 34346.,
      35384., 32546., 33596., 34646., 35696., 32822., 33884., 34946., 36008.,
      33098., 34172., 35246., 36320., 33374., 34460., 35546., 36632., 33650.,
      34748., 35846., 36944., 34202., 35324., 36446., 37568., 34478., 35612.,
      36746., 37880., 34754., 35900., 37046., 38192., 35030., 36188., 37346.,
      38504., 35306., 36476., 37646., 38816., 35582., 36764., 37946., 39128.,
      35858., 37052., 38246., 39440., 36410., 37628., 38846., 40064., 36686.,
      37916., 39146., 40376., 36962., 38204., 39446., 40688., 37238., 38492.,
      39746., 41000., 37514., 38780., 40046., 41312., 37790., 39068., 40346.,
      41624., 38066., 39356., 40646., 41936., 38618., 39932., 41246., 42560.,
      38894., 40220., 41546., 42872., 39170., 40508., 41846., 43184., 39446.,
      40796., 42146., 43496., 39722., 41084., 42446., 43808., 39998., 41372.,
      42746., 44120., 40274., 41660., 43046., 44432., 40826., 42236., 43646.,
      45056., 41102., 42524., 43946., 45368., 41378., 42812., 44246., 45680.,
      41654., 43100., 44546., 45992., 41930., 43388., 44846., 46304., 42206.,
      43676., 45146., 46616., 42482., 43964., 45446., 46928.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3568325., 3597200., 4287090., 4321740., 5007415., 5047840., 5729240.,
      5775440., 5017495., 5057920., 4304370., 4339020., 3589925., 3618800.,
      4336230., 4370880., 5207868., 5249448., 6080802., 6129312., 6954960.,
      7010400., 6088866., 6137376., 5221692., 5263272., 4353510., 4388160.,
      5113255., 5153680., 6139014., 6187524., 7165613., 7222208., 8192968.,
      8257648., 7170317., 7226912., 6147078., 6195588., 5123335., 5163760.,
      5895560., 5941760., 7075920., 7131360., 8256472., 8321152., 9437120.,
      9511040., 8256472., 8321152., 7075920., 7131360., 5895560., 5941760.,
      5123335., 5163760., 6147078., 6195588., 7170317., 7226912., 8192968.,
      8257648., 7165613., 7222208., 6139014., 6187524., 5113255., 5153680.,
      4353510., 4388160., 5221692., 5263272., 6088866., 6137376., 6954960.,
      7010400., 6080802., 6129312., 5207868., 5249448., 4336230., 4370880.,
      3589925., 3618800., 4304370., 4339020., 5017495., 5057920., 5729240.,
      5775440., 5007415., 5047840., 4287090., 4321740., 3568325., 3597200.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      28268., 30080., 28556., 30392., 28844., 30704., 29132., 31016., 29420.,
      31328., 29708., 31640., 29996., 31952., 30572., 32576., 30860., 32888.,
      31148., 33200., 31436., 33512., 31724., 33824., 32012., 34136., 32300.,
      34448., 32876., 35072., 33164., 35384., 33452., 35696., 33740., 36008.,
      34028., 36320., 34316., 36632., 34604., 36944., 35180., 37568., 35468.,
      37880., 35756., 38192., 36044., 38504., 36332., 38816., 36620., 39128.,
      36908., 39440., 37484., 40064., 37772., 40376., 38060., 40688., 38348.,
      41000., 38636., 41312., 38924., 41624., 39212., 41936., 39788., 42560.,
      40076., 42872., 40364., 43184., 40652., 43496., 40940., 43808., 41228.,
      44120., 41516., 44432., 42092., 45056., 42380., 45368., 42668., 45680.,
      42956., 45992., 43244., 46304., 43532., 46616., 43820., 46928.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3373875., 3386250., 3418750., 3431200., 4043400., 4058340., 4097250.,
      4112280., 4710895., 4728430., 4773720., 4791360., 5376240., 5396400.,
      5448040., 5468320., 4695005., 4712750., 4757830., 4775680., 4016160.,
      4031460., 4070010., 4085400., 3339825., 3352650., 3384700., 3397600.,
      4033530., 4049100., 4087380., 4103040., 4830480., 4849272., 4895100.,
      4914000., 5623842., 5645892., 5699232., 5721408., 6413472., 6438816.,
      6499632., 6525120., 5596710., 5619012., 5672100., 5694528., 4783968.,
      4803192., 4848588., 4867920., 3975390., 3991500., 4029240., 4045440.,
      4670225., 4689230., 4733050., 4752160., 5588856., 5611788., 5664246.,
      5687304., 6501957., 6528858., 6589912., 6616960., 7409360., 7440272.,
      7509880., 7540960., 6460895., 6488090., 6548850., 6576192., 5518464.,
      5541900., 5593854., 5617416., 4582235., 4601870., 4645060., 4664800.,
      5276280., 5298960., 5348080., 5370880., 6309312., 6336672., 6395472.,
      6422976., 7334488., 7366576., 7435008., 7467264., 8351616., 8388480.,
      8466496., 8503552., 7276808., 7309232., 7377328., 7409920., 6210432.,
      6238368., 6296592., 6324672., 5152680., 5176080., 5224480., 5248000.,
      4401985., 4422670., 4464810., 4485600., 5258904., 5283852., 5334294.,
      5359368., 6107605., 6136858., 6195560., 6224960., 6947920., 6981520.,
      7048440., 7082208., 6047727., 6077274., 6135682., 6165376., 5156256.,
      5181708., 5231646., 5257224., 4273675., 4294990., 4336500., 4357920.,
      3573690., 3592140., 3627540., 3646080., 4264848., 4287096., 4329468.,
      4351824., 4947810., 4973892., 5023200., 5049408., 5622432., 5652384.,
      5708592., 5738688., 4888422., 4914756., 4963812., 4990272., 4163040.,
      4185720., 4227660., 4250448., 3446430., 3465420., 3500280., 3519360.,
      2799075., 2815050., 2843950., 2860000., 3336360., 3355620., 3390210.,
      3409560., 3865855., 3888430., 3928680., 3951360., 4387440., 4413360.,
      4459240., 4485280., 3809645., 3832430., 3872470., 3895360., 3240000.,
      3259620., 3293850., 3313560., 2678625., 2695050., 2723500., 2740000.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      54880., 56536., 58492., 60160., 55432., 57112., 59092., 60784., 55984.,
      57688., 59692., 61408., 56536., 58264., 60292., 62032., 57088., 58840.,
      60892., 62656., 57640., 59416., 61492., 63280., 58192., 59992., 62092.,
      63904., 59296., 61144., 63292., 65152., 59848., 61720., 63892., 65776.,
      60400., 62296., 64492., 66400., 60952., 62872., 65092., 67024., 61504.,
      63448., 65692., 67648., 62056., 64024., 66292., 68272., 62608., 64600.,
      66892., 68896., 63712., 65752., 68092., 70144., 64264., 66328., 68692.,
      70768., 64816., 66904., 69292., 71392., 65368., 67480., 69892., 72016.,
      65920., 68056., 70492., 72640., 66472., 68632., 71092., 73264., 67024.,
      69208., 71692., 73888., 68128., 70360., 72892., 75136., 68680., 70936.,
      73492., 75760., 69232., 71512., 74092., 76384., 69784., 72088., 74692.,
      77008., 70336., 72664., 75292., 77632., 70888., 73240., 75892., 78256.,
      71440., 73816., 76492., 78880., 72544., 74968., 77692., 80128., 73096.,
      75544., 78292., 80752., 73648., 76120., 78892., 81376., 74200., 76696.,
      79492., 82000., 74752., 77272., 80092., 82624., 75304., 77848., 80692.,
      83248., 75856., 78424., 81292., 83872., 76960., 79576., 82492., 85120.,
      77512., 80152., 83092., 85744., 78064., 80728., 83692., 86368., 78616.,
      81304., 84292., 86992., 79168., 81880., 84892., 87616., 79720., 82456.,
      85492., 88240., 80272., 83032., 86092., 88864., 81376., 84184., 87292.,
      90112., 81928., 84760., 87892., 90736., 82480., 85336., 88492., 91360.,
      83032., 85912., 89092., 91984., 83584., 86488., 89692., 92608., 84136.,
      87064., 90292., 93232., 84688., 87640., 90892., 93856.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4623375.,  4635750.,  4648125.,  4660500.,  4700250.,  4712700.,
      4725150.,  4737600.,  5522100.,  5537040.,  5551980.,  5566920.,
      5614350.,  5629380.,  5644410.,  5659440.,  6411615.,  6429150.,
      6446685.,  6464220.,  6519240.,  6536880.,  6554520.,  6572160.,
      7291680.,  7311840.,  7332000.,  7352160.,  7414680.,  7434960.,
      7455240.,  7475520.,  6343785.,  6361530.,  6379275.,  6397020.,
      6451410.,  6469260.,  6487110.,  6504960.,  5405820.,  5421120.,
      5436420.,  5451720.,  5498070.,  5513460.,  5528850.,  5544240.,
      4478025.,  4490850.,  4503675.,  4516500.,  4554900.,  4567800.,
      4580700.,  4593600.,  5394210.,  5409780.,  5425350.,  5440920.,
      5486460.,  5502120.,  5517780.,  5533440.,  6435000.,  6453792.,
      6472584.,  6491376.,  6545700.,  6564600.,  6583500.,  6602400.,
      7462434.,  7484484.,  7506534.,  7528584.,  7591584.,  7613760.,
      7635936.,  7658112.,  8476224.,  8501568.,  8526912.,  8552256.,
      8623824.,  8649312.,  8674800.,  8700288.,  7364910.,  7387212.,
      7409514.,  7431816.,  7494060.,  7516488.,  7538916.,  7561344.,
      6267816.,  6287040.,  6306264.,  6325488.,  6378516.,  6397848.,
      6417180.,  6436512.,  5185230.,  5201340.,  5217450.,  5233560.,
      5277480.,  5293680.,  5309880.,  5326080.,  6077925.,  6096930.,
      6115935.,  6134940.,  6185550.,  6204660.,  6223770.,  6242880.,
      7241052.,  7263984.,  7286916.,  7309848.,  7370202.,  7393260.,
      7416318.,  7439376.,  8385909.,  8412810.,  8439711.,  8466612.,
      8536584.,  8563632.,  8590680.,  8617728.,  9512160.,  9543072.,
      9573984.,  9604896.,  9684360.,  9715440.,  9746520.,  9777600.,
      8253315.,  8280510.,  8307705.,  8334900.,  8403990.,  8431332.,
      8458674.,  8486016.,  7013748.,  7037184.,  7060620.,  7084056.,
      7142898.,  7166460.,  7190022.,  7213584.,  5793795.,  5813430.,
      5833065.,  5852700.,  5901420.,  5921160.,  5940900.,  5960640.,
      6659160.,  6681840.,  6704520.,  6727200.,  6782160.,  6804960.,
      6827760.,  6850560.,  7921824.,  7949184.,  7976544.,  8003904.,
      8069424.,  8096928.,  8124432.,  8151936.,  9160536.,  9192624.,
      9224712.,  9256800.,  9332736.,  9364992.,  9397248.,  9429504.,
      10374912., 10411776., 10448640., 10485504., 10571712., 10608768.,
      10645824., 10682880., 8987496.,  9019920.,  9052344.,  9084768.,
      9159696.,  9192288.,  9224880.,  9257472.,  7625184.,  7653120.,
      7681056.,  7708992.,  7772784.,  7800864.,  7828944.,  7857024.,
      6288360.,  6311760.,  6335160.,  6358560.,  6411360.,  6434880.,
      6458400.,  6481920.,  5253045.,  5273730.,  5294415.,  5315100.,
      5360670.,  5381460.,  5402250.,  5423040.,  6235068.,  6260016.,
      6284964.,  6309912.,  6364218.,  6389292.,  6414366.,  6439440.,
      7193445.,  7222698.,  7251951.,  7281204.,  7344120.,  7373520.,
      7402920.,  7432320.,  8127840.,  8161440.,  8195040.,  8228640.,
      8300040.,  8333808.,  8367576.,  8401344.,  7023219.,  7052766.,
      7082313.,  7111860.,  7173894.,  7203588.,  7233282.,  7262976.,
      5943252.,  5968704.,  5994156.,  6019608.,  6072402.,  6097980.,
      6123558.,  6149136.,  4888275.,  4909590.,  4930905.,  4952220.,
      4995900.,  5017320.,  5038740.,  5060160.,  3980130.,  3998580.,
      4017030.,  4035480.,  4072380.,  4090920.,  4109460.,  4128000.,
      4710456.,  4732704.,  4754952.,  4777200.,  4821156.,  4843512.,
      4865868.,  4888224.,  5418210.,  5444292.,  5470374.,  5496456.,
      5547360.,  5573568.,  5599776.,  5625984.,  6103104.,  6133056.,
      6163008.,  6192960.,  6250704.,  6280800.,  6310896.,  6340992.,
      5256174.,  5282508.,  5308842.,  5335176.,  5385324.,  5411784.,
      5438244.,  5464704.,  4432680.,  4455360.,  4478040.,  4500720.,
      4543380.,  4566168.,  4588956.,  4611744.,  3632910.,  3651900.,
      3670890.,  3689880.,  3725160.,  3744240.,  3763320.,  3782400.,
      2855775.,  2871750.,  2887725.,  2903700.,  2932650.,  2948700.,
      2964750.,  2980800.,  3366420.,  3385680.,  3404940.,  3424200.,
      3458670.,  3478020.,  3497370.,  3516720.,  3856335.,  3878910.,
      3901485.,  3924060.,  3963960.,  3986640.,  4009320.,  4032000.,
      4325280.,  4351200.,  4377120.,  4403040.,  4448280.,  4474320.,
      4500360.,  4526400.,  3707865.,  3730650.,  3753435.,  3776220.,
      3815490.,  3838380.,  3861270.,  3884160.,  3111900.,  3131520.,
      3151140.,  3170760.,  3204150.,  3223860.,  3243570.,  3263280.,
      2537625.,  2554050.,  2570475.,  2586900.,  2614500.,  2631000.,
      2647500.,  2664000.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      108104., 109760., 111416., 113072., 115316., 116984., 118652., 120320.,
      109184., 110864., 112544., 114224., 116492., 118184., 119876., 121568.,
      110264., 111968., 113672., 115376., 117668., 119384., 121100., 122816.,
      111344., 113072., 114800., 116528., 118844., 120584., 122324., 124064.,
      112424., 114176., 115928., 117680., 120020., 121784., 123548., 125312.,
      113504., 115280., 117056., 118832., 121196., 122984., 124772., 126560.,
      114584., 116384., 118184., 119984., 122372., 124184., 125996., 127808.,
      116744., 118592., 120440., 122288., 124724., 126584., 128444., 130304.,
      117824., 119696., 121568., 123440., 125900., 127784., 129668., 131552.,
      118904., 120800., 122696., 124592., 127076., 128984., 130892., 132800.,
      119984., 121904., 123824., 125744., 128252., 130184., 132116., 134048.,
      121064., 123008., 124952., 126896., 129428., 131384., 133340., 135296.,
      122144., 124112., 126080., 128048., 130604., 132584., 134564., 136544.,
      123224., 125216., 127208., 129200., 131780., 133784., 135788., 137792.,
      125384., 127424., 129464., 131504., 134132., 136184., 138236., 140288.,
      126464., 128528., 130592., 132656., 135308., 137384., 139460., 141536.,
      127544., 129632., 131720., 133808., 136484., 138584., 140684., 142784.,
      128624., 130736., 132848., 134960., 137660., 139784., 141908., 144032.,
      129704., 131840., 133976., 136112., 138836., 140984., 143132., 145280.,
      130784., 132944., 135104., 137264., 140012., 142184., 144356., 146528.,
      131864., 134048., 136232., 138416., 141188., 143384., 145580., 147776.,
      134024., 136256., 138488., 140720., 143540., 145784., 148028., 150272.,
      135104., 137360., 139616., 141872., 144716., 146984., 149252., 151520.,
      136184., 138464., 140744., 143024., 145892., 148184., 150476., 152768.,
      137264., 139568., 141872., 144176., 147068., 149384., 151700., 154016.,
      138344., 140672., 143000., 145328., 148244., 150584., 152924., 155264.,
      139424., 141776., 144128., 146480., 149420., 151784., 154148., 156512.,
      140504., 142880., 145256., 147632., 150596., 152984., 155372., 157760.,
      142664., 145088., 147512., 149936., 152948., 155384., 157820., 160256.,
      143744., 146192., 148640., 151088., 154124., 156584., 159044., 161504.,
      144824., 147296., 149768., 152240., 155300., 157784., 160268., 162752.,
      145904., 148400., 150896., 153392., 156476., 158984., 161492., 164000.,
      146984., 149504., 152024., 154544., 157652., 160184., 162716., 165248.,
      148064., 150608., 153152., 155696., 158828., 161384., 163940., 166496.,
      149144., 151712., 154280., 156848., 160004., 162584., 165164., 167744.,
      151304., 153920., 156536., 159152., 162356., 164984., 167612., 170240.,
      152384., 155024., 157664., 160304., 163532., 166184., 168836., 171488.,
      153464., 156128., 158792., 161456., 164708., 167384., 170060., 172736.,
      154544., 157232., 159920., 162608., 165884., 168584., 171284., 173984.,
      155624., 158336., 161048., 163760., 167060., 169784., 172508., 175232.,
      156704., 159440., 162176., 164912., 168236., 170984., 173732., 176480.,
      157784., 160544., 163304., 166064., 169412., 172184., 174956., 177728.,
      159944., 162752., 165560., 168368., 171764., 174584., 177404., 180224.,
      161024., 163856., 166688., 169520., 172940., 175784., 178628., 181472.,
      162104., 164960., 167816., 170672., 174116., 176984., 179852., 182720.,
      163184., 166064., 168944., 171824., 175292., 178184., 181076., 183968.,
      164264., 167168., 170072., 172976., 176468., 179384., 182300., 185216.,
      165344., 168272., 171200., 174128., 177644., 180584., 183524., 186464.,
      166424., 169376., 172328., 175280., 178820., 181784., 184748., 187712.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4410975.,  4442900.,  4474975.,  4507200.,  5313570.,  5351880.,
      5390370.,  5429040.,  6222405.,  6267100.,  6312005.,  6357120.,
      7137240.,  7188320.,  7239640.,  7291200.,  6262725.,  6307420.,
      6352325.,  6397440.,  5382690.,  5421000.,  5459490.,  5498160.,
      4497375.,  4529300.,  4561375.,  4593600.,  5510130.,  5548440.,
      5586930.,  5625600.,  6629724.,  6675696.,  6721884.,  6768288.,
      7754502.,  7808136.,  7862022.,  7916160.,  8884176.,  8945472.,
      9007056.,  9068928.,  7786758.,  7840392.,  7894278.,  7948416.,
      6685020.,  6730992.,  6777180.,  6823584.,  5579250.,  5617560.,
      5656050.,  5694720.,  6645765.,  6690460.,  6735365.,  6780480.,
      7987350.,  8040984.,  8094870.,  8149008.,  9332295.,  9394868.,
      9457735.,  9520896.,  10680264., 10751776., 10823624., 10895808.,
      9351111.,  9413684.,  9476551.,  9539712.,  8019606.,  8073240.,
      8127126.,  8181264.,  6686085.,  6730780.,  6775685.,  6820800.,
      7802520.,  7853600.,  7904920.,  7956480.,  9368016.,  9429312.,
      9490896.,  9552768.,  10934280., 11005792., 11077640., 11149824.,
      12500928., 12582656., 12664768., 12747264., 10934280., 11005792.,
      11077640., 11149824., 9368016.,  9429312.,  9490896.,  9552768.,
      7802520.,  7853600.,  7904920.,  7956480.,  6686085.,  6730780.,
      6775685.,  6820800.,  8019606.,  8073240.,  8127126.,  8181264.,
      9351111.,  9413684.,  9476551.,  9539712.,  10680264., 10751776.,
      10823624., 10895808., 9332295.,  9394868.,  9457735.,  9520896.,
      7987350.,  8040984.,  8094870.,  8149008.,  6645765.,  6690460.,
      6735365.,  6780480.,  5579250.,  5617560.,  5656050.,  5694720.,
      6685020.,  6730992.,  6777180.,  6823584.,  7786758.,  7840392.,
      7894278.,  7948416.,  8884176.,  8945472.,  9007056.,  9068928.,
      7754502.,  7808136.,  7862022.,  7916160.,  6629724.,  6675696.,
      6721884.,  6768288.,  5510130.,  5548440.,  5586930.,  5625600.,
      4497375.,  4529300.,  4561375.,  4593600.,  5382690.,  5421000.,
      5459490.,  5498160.,  6262725.,  6307420.,  6352325.,  6397440.,
      7137240.,  7188320.,  7239640.,  7291200.,  6222405.,  6267100.,
      6312005.,  6357120.,  5313570.,  5351880.,  5390370.,  5429040.,
      4410975.,  4442900.,  4474975.,  4507200.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      109484., 113072., 116684., 120320., 110588., 114224., 117884., 121568.,
      111692., 115376., 119084., 122816., 112796., 116528., 120284., 124064.,
      113900., 117680., 121484., 125312., 115004., 118832., 122684., 126560.,
      116108., 119984., 123884., 127808., 118316., 122288., 126284., 130304.,
      119420., 123440., 127484., 131552., 120524., 124592., 128684., 132800.,
      121628., 125744., 129884., 134048., 122732., 126896., 131084., 135296.,
      123836., 128048., 132284., 136544., 124940., 129200., 133484., 137792.,
      127148., 131504., 135884., 140288., 128252., 132656., 137084., 141536.,
      129356., 133808., 138284., 142784., 130460., 134960., 139484., 144032.,
      131564., 136112., 140684., 145280., 132668., 137264., 141884., 146528.,
      133772., 138416., 143084., 147776., 135980., 140720., 145484., 150272.,
      137084., 141872., 146684., 151520., 138188., 143024., 147884., 152768.,
      139292., 144176., 149084., 154016., 140396., 145328., 150284., 155264.,
      141500., 146480., 151484., 156512., 142604., 147632., 152684., 157760.,
      144812., 149936., 155084., 160256., 145916., 151088., 156284., 161504.,
      147020., 152240., 157484., 162752., 148124., 153392., 158684., 164000.,
      149228., 154544., 159884., 165248., 150332., 155696., 161084., 166496.,
      151436., 156848., 162284., 167744., 153644., 159152., 164684., 170240.,
      154748., 160304., 165884., 171488., 155852., 161456., 167084., 172736.,
      156956., 162608., 168284., 173984., 158060., 163760., 169484., 175232.,
      159164., 164912., 170684., 176480., 160268., 166064., 171884., 177728.,
      162476., 168368., 174284., 180224., 163580., 169520., 175484., 181472.,
      164684., 170672., 176684., 182720., 165788., 171824., 177884., 183968.,
      166892., 172976., 179084., 185216., 167996., 174128., 180284., 186464.,
      169100., 175280., 181484., 187712.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4598875.,  4610750.,  4649850.,  4661800.,  4701125.,  4713150.,
      4752700.,  4764800.,  5528550.,  5542980.,  5589720.,  5604240.,
      5651250.,  5665860.,  5713140.,  5727840.,  6460405.,  6477450.,
      6531770.,  6548920.,  6603555.,  6620810.,  6675760.,  6693120.,
      7393960.,  7413680.,  7475520.,  7495360.,  7557560.,  7577520.,
      7640080.,  7660160.,  6468945.,  6486410.,  6540310.,  6557880.,
      6612095.,  6629770.,  6684300.,  6702080.,  5543190.,  5558340.,
      5604360.,  5619600.,  5665890.,  5681220.,  5727780.,  5743200.,
      4617175.,  4629950.,  4668150.,  4681000.,  4719425.,  4732350.,
      4771000.,  4784000.,  5705370.,  5721060.,  5766540.,  5782320.,
      5828070.,  5843940.,  5889960.,  5905920.,  6844500.,  6863544.,
      6917904.,  6937056.,  6991740.,  7011000.,  7066008.,  7085376.,
      7981638.,  8004108.,  8067276.,  8089872.,  8153418.,  8176140.,
      8240064.,  8262912.,  9116208.,  9142176.,  9214080.,  9240192.,
      9312528.,  9338784.,  9411552.,  9437952.,  7959630.,  7982604.,
      8045268.,  8068368.,  8131410.,  8154636.,  8218056.,  8241408.,
      6806772.,  6826680.,  6880176.,  6900192.,  6954012.,  6974136.,
      7028280.,  7048512.,  5658210.,  5674980.,  5719380.,  5736240.,
      5780910.,  5797860.,  5842800.,  5859840.,  6802425.,  6822410.,
      6873790.,  6893880.,  6945575.,  6965770.,  7017780.,  7038080.,
      8144514.,  8168748.,  8230152.,  8254512.,  8316294.,  8340780.,
      8402940.,  8427552.,  9478903.,  9507470.,  9578814.,  9607528.,
      9679313.,  9708174.,  9780400.,  9809408.,  10804920., 10837904.,
      10919104., 10952256., 11033960., 11067280., 11149488., 11182976.,
      9415595.,  9444750.,  9515506.,  9544808.,  9616005.,  9645454.,
      9717092.,  9746688.,  8035986.,  8061228.,  8121624.,  8146992.,
      8207766.,  8233260.,  8294412.,  8320032.,  6666765.,  6688010.,
      6738130.,  6759480.,  6809915.,  6831370.,  6882120.,  6903680.,
      7859320.,  7884080.,  7940880.,  7965760.,  8022920.,  8047920.,
      8105440.,  8130560.,  9391728.,  9421728.,  9489600.,  9519744.,
      9588048.,  9618336.,  9687072.,  9717504.,  10909192., 10944528.,
      11023376., 11058880., 11138232., 11173904., 11253760., 11289600.,
      12410944., 12451712., 12541440., 12582400., 12672704., 12713856.,
      12804736., 12846080., 10793832., 10829840., 10908016., 10944192.,
      11022872., 11059216., 11138400., 11174912., 9193968.,  9225120.,
      9291840.,  9323136.,  9390288.,  9421728.,  9489312.,  9520896.,
      7612120.,  7638320.,  7693680.,  7720000.,  7775720.,  7802160.,
      7858240.,  7884800.,  6306265.,  6329610.,  6377630.,  6401080.,
      6449415.,  6472970.,  6521620.,  6545280.,  7516866.,  7545132.,
      7602504.,  7630896.,  7688646.,  7717164.,  7775292.,  7803936.,
      8709015.,  8742286.,  8808926.,  8842344.,  8909425.,  8942990.,
      9010512.,  9044224.,  9882040.,  9920400.,  9996224.,  10034752.,
      10111080., 10149776., 10226608., 10265472., 8570443.,  8604302.,
      8670354.,  8704360.,  8770853.,  8805006.,  8871940.,  8906240.,
      7279314.,  7308588.,  7364952.,  7394352.,  7451094.,  7480620.,
      7537740.,  7567392.,  6009325.,  6033930.,  6080690.,  6105400.,
      6152475.,  6177290.,  6224680.,  6249600.,  4854810.,  4876260.,
      4915980.,  4937520.,  4977510.,  4999140.,  5039400.,  5061120.,
      5768532.,  5794488.,  5841936.,  5868000.,  5915772.,  5941944.,
      5990040.,  6016320.,  6661830.,  6692364.,  6747468.,  6778128.,
      6833610.,  6864396.,  6920256.,  6951168.,  7534128.,  7569312.,
      7632000.,  7667328.,  7730448.,  7765920.,  7829472.,  7865088.,
      6510798.,  6541836.,  6596436.,  6627600.,  6682578.,  6713868.,
      6769224.,  6800640.,  5509620.,  5536440.,  5583024.,  5609952.,
      5656860.,  5683896.,  5731128.,  5758272.,  4531170.,  4553700.,
      4592340.,  4614960.,  4653870.,  4676580.,  4715760.,  4738560.,
      3535675.,  3554750.,  3586650.,  3605800.,  3637925.,  3657150.,
      3689500.,  3708800.,  4183590.,  4206660.,  4244760.,  4267920.,
      4306290.,  4329540.,  4368180.,  4391520.,  4810645.,  4837770.,
      4882010.,  4909240.,  4953795.,  4981130.,  5026000.,  5053440.,
      5416360.,  5447600.,  5497920.,  5529280.,  5579960.,  5611440.,
      5662480.,  5694080.,  4657905.,  4685450.,  4729270.,  4756920.,
      4801055.,  4828810.,  4873260.,  4901120.,  3921750.,  3945540.,
      3982920.,  4006800.,  4044450.,  4068420.,  4106340.,  4130400.,
      3208375.,  3228350.,  3259350.,  3279400.,  3310625.,  3330750.,
      3362200.,  3382400.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      215668., 218968., 222832., 226144., 230044., 233368., 237304., 240640.,
      217828., 221176., 225088., 228448., 232396., 235768., 239752., 243136.,
      219988., 223384., 227344., 230752., 234748., 238168., 242200., 245632.,
      222148., 225592., 229600., 233056., 237100., 240568., 244648., 248128.,
      224308., 227800., 231856., 235360., 239452., 242968., 247096., 250624.,
      226468., 230008., 234112., 237664., 241804., 245368., 249544., 253120.,
      228628., 232216., 236368., 239968., 244156., 247768., 251992., 255616.,
      232948., 236632., 240880., 244576., 248860., 252568., 256888., 260608.,
      235108., 238840., 243136., 246880., 251212., 254968., 259336., 263104.,
      237268., 241048., 245392., 249184., 253564., 257368., 261784., 265600.,
      239428., 243256., 247648., 251488., 255916., 259768., 264232., 268096.,
      241588., 245464., 249904., 253792., 258268., 262168., 266680., 270592.,
      243748., 247672., 252160., 256096., 260620., 264568., 269128., 273088.,
      245908., 249880., 254416., 258400., 262972., 266968., 271576., 275584.,
      250228., 254296., 258928., 263008., 267676., 271768., 276472., 280576.,
      252388., 256504., 261184., 265312., 270028., 274168., 278920., 283072.,
      254548., 258712., 263440., 267616., 272380., 276568., 281368., 285568.,
      256708., 260920., 265696., 269920., 274732., 278968., 283816., 288064.,
      258868., 263128., 267952., 272224., 277084., 281368., 286264., 290560.,
      261028., 265336., 270208., 274528., 279436., 283768., 288712., 293056.,
      263188., 267544., 272464., 276832., 281788., 286168., 291160., 295552.,
      267508., 271960., 276976., 281440., 286492., 290968., 296056., 300544.,
      269668., 274168., 279232., 283744., 288844., 293368., 298504., 303040.,
      271828., 276376., 281488., 286048., 291196., 295768., 300952., 305536.,
      273988., 278584., 283744., 288352., 293548., 298168., 303400., 308032.,
      276148., 280792., 286000., 290656., 295900., 300568., 305848., 310528.,
      278308., 283000., 288256., 292960., 298252., 302968., 308296., 313024.,
      280468., 285208., 290512., 295264., 300604., 305368., 310744., 315520.,
      284788., 289624., 295024., 299872., 305308., 310168., 315640., 320512.,
      286948., 291832., 297280., 302176., 307660., 312568., 318088., 323008.,
      289108., 294040., 299536., 304480., 310012., 314968., 320536., 325504.,
      291268., 296248., 301792., 306784., 312364., 317368., 322984., 328000.,
      293428., 298456., 304048., 309088., 314716., 319768., 325432., 330496.,
      295588., 300664., 306304., 311392., 317068., 322168., 327880., 332992.,
      297748., 302872., 308560., 313696., 319420., 324568., 330328., 335488.,
      302068., 307288., 313072., 318304., 324124., 329368., 335224., 340480.,
      304228., 309496., 315328., 320608., 326476., 331768., 337672., 342976.,
      306388., 311704., 317584., 322912., 328828., 334168., 340120., 345472.,
      308548., 313912., 319840., 325216., 331180., 336568., 342568., 347968.,
      310708., 316120., 322096., 327520., 333532., 338968., 345016., 350464.,
      312868., 318328., 324352., 329824., 335884., 341368., 347464., 352960.,
      315028., 320536., 326608., 332128., 338236., 343768., 349912., 355456.,
      319348., 324952., 331120., 336736., 342940., 348568., 354808., 360448.,
      321508., 327160., 333376., 339040., 345292., 350968., 357256., 362944.,
      323668., 329368., 335632., 341344., 347644., 353368., 359704., 365440.,
      325828., 331576., 337888., 343648., 349996., 355768., 362152., 367936.,
      327988., 333784., 340144., 345952., 352348., 358168., 364600., 370432.,
      330148., 335992., 342400., 348256., 354700., 360568., 367048., 372928.,
      332308., 338200., 344656., 350560., 357052., 362968., 369496., 375424.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3830355.,  3842230.,  3854105.,  3865980.,  3901510.,  3913460.,
      3925410.,  3937360.,  3973265.,  3985290.,  3997315.,  4009340.,
      4045620.,  4057720.,  4069820.,  4081920.,  4542318.,  4556748.,
      4571178.,  4585608.,  4627704.,  4642224.,  4656744.,  4671264.,
      4713810.,  4728420.,  4743030.,  4757640.,  4800636.,  4815336.,
      4830036.,  4844736.,  5234005.,  5251050.,  5268095.,  5285140.,
      5333622.,  5350772.,  5367922.,  5385072.,  5434079.,  5451334.,
      5468589.,  5485844.,  5535376.,  5552736.,  5570096.,  5587456.,
      5904456.,  5924176.,  5943896.,  5963616.,  6018304.,  6038144.,
      6057984.,  6077824.,  6133112.,  6153072.,  6173032.,  6192992.,
      6248880.,  6268960.,  6289040.,  6309120.,  5078633.,  5096098.,
      5113563.,  5131028.,  5178250.,  5195820.,  5213390.,  5230960.,
      5278707.,  5296382.,  5314057.,  5331732.,  5380004.,  5397784.,
      5415564.,  5433344.,  4275966.,  4291116.,  4306266.,  4321416.,
      4361352.,  4376592.,  4391832.,  4407072.,  4447458.,  4462788.,
      4478118.,  4493448.,  4534284.,  4549704.,  4565124.,  4580544.,
      3497415.,  3510190.,  3522965.,  3535740.,  3568570.,  3581420.,
      3594270.,  3607120.,  3640325.,  3653250.,  3666175.,  3679100.,
      3712680.,  3725680.,  3738680.,  3751680.,  5056490.,  5072180.,
      5087870.,  5103560.,  5148020.,  5163800.,  5179580.,  5195360.,
      5240270.,  5256140.,  5272010.,  5287880.,  5333240.,  5349200.,
      5365160.,  5381120.,  5989956.,  6009000.,  6028044.,  6047088.,
      6099792.,  6118944.,  6138096.,  6157248.,  6210492.,  6229752.,
      6249012.,  6268272.,  6322056.,  6341424.,  6360792.,  6380160.,
      6894790.,  6917260.,  6939730.,  6962200.,  7022932.,  7045528.,
      7068124.,  7090720.,  7152082.,  7174804.,  7197526.,  7220248.,
      7282240.,  7305088.,  7327936.,  7350784.,  7769840.,  7795808.,
      7821776.,  7847744.,  7916288.,  7942400.,  7968512.,  7994624.,
      8063888.,  8090144.,  8116400.,  8142656.,  8212640.,  8239040.,
      8265440.,  8291840.,  6678238.,  6701212.,  6724186.,  6747160.,
      6806380.,  6829480.,  6852580.,  6875680.,  6935530.,  6958756.,
      6981982.,  7005208.,  7065688.,  7089040.,  7112392.,  7135744.,
      5618724.,  5638632.,  5658540.,  5678448.,  5728560.,  5748576.,
      5768592.,  5788608.,  5839260.,  5859384.,  5879508.,  5899632.,
      5950824.,  5971056.,  5991288.,  6011520.,  4592450.,  4609220.,
      4625990.,  4642760.,  4683980.,  4700840.,  4717700.,  4734560.,
      4776230.,  4793180.,  4810130.,  4827080.,  4869200.,  4886240.,
      4903280.,  4920320.,  6263265.,  6283250.,  6303235.,  6323220.,
      6375170.,  6395260.,  6415350.,  6435440.,  6487915.,  6508110.,
      6528305.,  6548500.,  6601500.,  6621800.,  6642100.,  6662400.,
      7405146.,  7429380.,  7453614.,  7477848.,  7539432.,  7563792.,
      7588152.,  7612512.,  7674726.,  7699212.,  7723698.,  7748184.,
      7811028.,  7835640.,  7860252.,  7884864.,  8506967.,  8535534.,
      8564101.,  8592668.,  8663634.,  8692348.,  8721062.,  8749776.,
      8821477.,  8850338.,  8879199.,  8908060.,  8980496.,  9009504.,
      9038512.,  9067520.,  9567384.,  9600368.,  9633352.,  9666336.,
      9746432.,  9779584.,  9812736.,  9845888.,  9926824.,  9960144.,
      9993464.,  10026784., 10108560., 10142048., 10175536., 10209024.,
      8207731.,  8236886.,  8266041.,  8295196.,  8364398.,  8393700.,
      8423002.,  8452304.,  8522241.,  8551690.,  8581139.,  8610588.,
      8681260.,  8710856.,  8740452.,  8770048.,  6892170.,  6917412.,
      6942654.,  6967896.,  7026456.,  7051824.,  7077192.,  7102560.,
      7161750.,  7187244.,  7212738.,  7238232.,  7298052.,  7323672.,
      7349292.,  7374912.,  5622045.,  5643290.,  5664535.,  5685780.,
      5733950.,  5755300.,  5776650.,  5798000.,  5846695.,  5868150.,
      5889605.,  5911060.,  5960280.,  5981840.,  6003400.,  6024960.,
      7389240.,  7414000.,  7438760.,  7463520.,  7521520.,  7546400.,
      7571280.,  7596160.,  7654760.,  7679760.,  7704760.,  7729760.,
      7788960.,  7814080.,  7839200.,  7864320.,  8714160.,  8744160.,
      8774160.,  8804160.,  8872896.,  8903040.,  8933184.,  8963328.,
      9032784.,  9063072.,  9093360.,  9123648.,  9193824.,  9224256.,
      9254688.,  9285120.,  9984520.,  10019856., 10055192., 10090528.,
      10169712., 10205216., 10240720., 10276224., 10356248., 10391920.,
      10427592., 10463264., 10544128., 10579968., 10615808., 10651648.,
      11198784., 11239552., 11280320., 11321088., 11410432., 11451392.,
      11492352., 11533312., 11623616., 11664768., 11705920., 11747072.,
      11838336., 11879680., 11921024., 11962368., 9581096.,  9617104.,
      9653112.,  9689120.,  9766288.,  9802464.,  9838640.,  9874816.,
      9952824.,  9989168.,  10025512., 10061856., 10140704., 10177216.,
      10213728., 10250240., 8022576.,  8053728.,  8084880.,  8116032.,
      8181312.,  8212608.,  8243904.,  8275200.,  8341200.,  8372640.,
      8404080.,  8435520.,  8502240.,  8533824.,  8565408.,  8596992.,
      6524760.,  6550960.,  6577160.,  6603360.,  6657040.,  6683360.,
      6709680.,  6736000.,  6790280.,  6816720.,  6843160.,  6869600.,
      6924480.,  6951040.,  6977600.,  7004160.,  5992065.,  6015410.,
      6038755.,  6062100.,  6111650.,  6135100.,  6158550.,  6182000.,
      6232075.,  6255630.,  6279185.,  6302740.,  6353340.,  6377000.,
      6400660.,  6424320.,  7033626.,  7061892.,  7090158.,  7118424.,
      7177128.,  7205520.,  7233912.,  7262304.,  7321638.,  7350156.,
      7378674.,  7407192.,  7467156.,  7495800.,  7524444.,  7553088.,
      8019767.,  8053038.,  8086309.,  8119580.,  8187186.,  8220604.,
      8254022.,  8287440.,  8355781.,  8389346.,  8422911.,  8456476.,
      8525552.,  8559264.,  8592976.,  8626688.,  8949144.,  8987504.,
      9025864.,  9064224.,  9140480.,  9179008.,  9217536.,  9256064.,
      9333160.,  9371856.,  9410552.,  9449248.,  9527184.,  9566048.,
      9604912.,  9643776.,  7613011.,  7646870.,  7680729.,  7714588.,
      7780430.,  7814436.,  7848442.,  7882448.,  7949025.,  7983178.,
      8017331.,  8051484.,  8118796.,  8153096.,  8187396.,  8221696.,
      6336330.,  6365604.,  6394878.,  6424152.,  6479832.,  6509232.,
      6538632.,  6568032.,  6624342.,  6653868.,  6683394.,  6712920.,
      6769860.,  6799512.,  6829164.,  6858816.,  5120445.,  5145050.,
      5169655.,  5194260.,  5240030.,  5264740.,  5289450.,  5314160.,
      5360455.,  5385270.,  5410085.,  5434900.,  5481720.,  5506640.,
      5531560.,  5556480.,  5044330.,  5065780.,  5087230.,  5108680.,
      5151220.,  5172760.,  5194300.,  5215840.,  5258830.,  5280460.,
      5302090.,  5323720.,  5367160.,  5388880.,  5410600.,  5432320.,
      5901636.,  5927592.,  5953548.,  5979504.,  6029904.,  6055968.,
      6082032.,  6108096.,  6159036.,  6185208.,  6211380.,  6237552.,
      6289032.,  6315312.,  6341592.,  6367872.,  6705734.,  6736268.,
      6766802.,  6797336.,  6855380.,  6886040.,  6916700.,  6947360.,
      7006034.,  7036820.,  7067606.,  7098392.,  7157696.,  7188608.,
      7219520.,  7250432.,  7455472.,  7490656.,  7525840.,  7561024.,
      7626496.,  7661824.,  7697152.,  7732480.,  7798672.,  7834144.,
      7869616.,  7905088.,  7972000.,  8007616.,  8043232.,  8078848.,
      6317150.,  6348188.,  6379226.,  6410264.,  6466796.,  6497960.,
      6529124.,  6560288.,  6617450.,  6648740.,  6680030.,  6711320.,
      6769112.,  6800528.,  6831944.,  6863360.,  5235492.,  5262312.,
      5289132.,  5315952.,  5363760.,  5390688.,  5417616.,  5444544.,
      5492892.,  5519928.,  5546964.,  5574000.,  5622888.,  5650032.,
      5677176.,  5704320.,  4211650.,  4234180.,  4256710.,  4279240.,
      4318540.,  4341160.,  4363780.,  4386400.,  4426150.,  4448860.,
      4471570.,  4494280.,  4534480.,  4557280.,  4580080.,  4602880.,
      4607475.,  4626550.,  4645625.,  4664700.,  4701670.,  4720820.,
      4739970.,  4759120.,  4796465.,  4815690.,  4834915.,  4854140.,
      4891860.,  4911160.,  4930460.,  4949760.,  5391918.,  5414988.,
      5438058.,  5461128.,  5504952.,  5528112.,  5551272.,  5574432.,
      5618706.,  5641956.,  5665206.,  5688456.,  5733180.,  5756520.,
      5779860.,  5803200.,  6128437.,  6155562.,  6182687.,  6209812.,
      6260310.,  6287540.,  6314770.,  6342000.,  6393023.,  6420358.,
      6447693.,  6475028.,  6526576.,  6554016.,  6581456.,  6608896.,
      6816072.,  6847312.,  6878552.,  6909792.,  6966784.,  6998144.,
      7029504.,  7060864.,  7118456.,  7149936.,  7181416.,  7212896.,
      7271088.,  7302688.,  7334288.,  7365888.,  5779529.,  5807074.,
      5834619.,  5862164.,  5911402.,  5939052.,  5966702.,  5994352.,
      6044115.,  6071870.,  6099625.,  6127380.,  6177668.,  6205528.,
      6233388.,  6261248.,  4793790.,  4817580.,  4841370.,  4865160.,
      4906824.,  4930704.,  4954584.,  4978464.,  5020578.,  5044548.,
      5068518.,  5092488.,  5135052.,  5159112.,  5183172.,  5207232.,
      3859815.,  3879790.,  3899765.,  3919740.,  3954010.,  3974060.,
      3994110.,  4014160.,  4048805.,  4068930.,  4089055.,  4109180.,
      4144200.,  4164400.,  4184600.,  4204800.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      428036., 431336., 434636., 437936., 442352., 445664., 448976., 452288.,
      456764., 460088., 463412., 466736., 471272., 474608., 477944., 481280.,
      432308., 435656., 439004., 442352., 446816., 450176., 453536., 456896.,
      461420., 464792., 468164., 471536., 476120., 479504., 482888., 486272.,
      436580., 439976., 443372., 446768., 451280., 454688., 458096., 461504.,
      466076., 469496., 472916., 476336., 480968., 484400., 487832., 491264.,
      440852., 444296., 447740., 451184., 455744., 459200., 462656., 466112.,
      470732., 474200., 477668., 481136., 485816., 489296., 492776., 496256.,
      445124., 448616., 452108., 455600., 460208., 463712., 467216., 470720.,
      475388., 478904., 482420., 485936., 490664., 494192., 497720., 501248.,
      449396., 452936., 456476., 460016., 464672., 468224., 471776., 475328.,
      480044., 483608., 487172., 490736., 495512., 499088., 502664., 506240.,
      453668., 457256., 460844., 464432., 469136., 472736., 476336., 479936.,
      484700., 488312., 491924., 495536., 500360., 503984., 507608., 511232.,
      462212., 465896., 469580., 473264., 478064., 481760., 485456., 489152.,
      494012., 497720., 501428., 505136., 510056., 513776., 517496., 521216.,
      466484., 470216., 473948., 477680., 482528., 486272., 490016., 493760.,
      498668., 502424., 506180., 509936., 514904., 518672., 522440., 526208.,
      470756., 474536., 478316., 482096., 486992., 490784., 494576., 498368.,
      503324., 507128., 510932., 514736., 519752., 523568., 527384., 531200.,
      475028., 478856., 482684., 486512., 491456., 495296., 499136., 502976.,
      507980., 511832., 515684., 519536., 524600., 528464., 532328., 536192.,
      479300., 483176., 487052., 490928., 495920., 499808., 503696., 507584.,
      512636., 516536., 520436., 524336., 529448., 533360., 537272., 541184.,
      483572., 487496., 491420., 495344., 500384., 504320., 508256., 512192.,
      517292., 521240., 525188., 529136., 534296., 538256., 542216., 546176.,
      487844., 491816., 495788., 499760., 504848., 508832., 512816., 516800.,
      521948., 525944., 529940., 533936., 539144., 543152., 547160., 551168.,
      496388., 500456., 504524., 508592., 513776., 517856., 521936., 526016.,
      531260., 535352., 539444., 543536., 548840., 552944., 557048., 561152.,
      500660., 504776., 508892., 513008., 518240., 522368., 526496., 530624.,
      535916., 540056., 544196., 548336., 553688., 557840., 561992., 566144.,
      504932., 509096., 513260., 517424., 522704., 526880., 531056., 535232.,
      540572., 544760., 548948., 553136., 558536., 562736., 566936., 571136.,
      509204., 513416., 517628., 521840., 527168., 531392., 535616., 539840.,
      545228., 549464., 553700., 557936., 563384., 567632., 571880., 576128.,
      513476., 517736., 521996., 526256., 531632., 535904., 540176., 544448.,
      549884., 554168., 558452., 562736., 568232., 572528., 576824., 581120.,
      517748., 522056., 526364., 530672., 536096., 540416., 544736., 549056.,
      554540., 558872., 563204., 567536., 573080., 577424., 581768., 586112.,
      522020., 526376., 530732., 535088., 540560., 544928., 549296., 553664.,
      559196., 563576., 567956., 572336., 577928., 582320., 586712., 591104.,
      530564., 535016., 539468., 543920., 549488., 553952., 558416., 562880.,
      568508., 572984., 577460., 581936., 587624., 592112., 596600., 601088.,
      534836., 539336., 543836., 548336., 553952., 558464., 562976., 567488.,
      573164., 577688., 582212., 586736., 592472., 597008., 601544., 606080.,
      539108., 543656., 548204., 552752., 558416., 562976., 567536., 572096.,
      577820., 582392., 586964., 591536., 597320., 601904., 606488., 611072.,
      543380., 547976., 552572., 557168., 562880., 567488., 572096., 576704.,
      582476., 587096., 591716., 596336., 602168., 606800., 611432., 616064.,
      547652., 552296., 556940., 561584., 567344., 572000., 576656., 581312.,
      587132., 591800., 596468., 601136., 607016., 611696., 616376., 621056.,
      551924., 556616., 561308., 566000., 571808., 576512., 581216., 585920.,
      591788., 596504., 601220., 605936., 611864., 616592., 621320., 626048.,
      556196., 560936., 565676., 570416., 576272., 581024., 585776., 590528.,
      596444., 601208., 605972., 610736., 616712., 621488., 626264., 631040.,
      564740., 569576., 574412., 579248., 585200., 590048., 594896., 599744.,
      605756., 610616., 615476., 620336., 626408., 631280., 636152., 641024.,
      569012., 573896., 578780., 583664., 589664., 594560., 599456., 604352.,
      610412., 615320., 620228., 625136., 631256., 636176., 641096., 646016.,
      573284., 578216., 583148., 588080., 594128., 599072., 604016., 608960.,
      615068., 620024., 624980., 629936., 636104., 641072., 646040., 651008.,
      577556., 582536., 587516., 592496., 598592., 603584., 608576., 613568.,
      619724., 624728., 629732., 634736., 640952., 645968., 650984., 656000.,
      581828., 586856., 591884., 596912., 603056., 608096., 613136., 618176.,
      624380., 629432., 634484., 639536., 645800., 650864., 655928., 660992.,
      586100., 591176., 596252., 601328., 607520., 612608., 617696., 622784.,
      629036., 634136., 639236., 644336., 650648., 655760., 660872., 665984.,
      590372., 595496., 600620., 605744., 611984., 617120., 622256., 627392.,
      633692., 638840., 643988., 649136., 655496., 660656., 665816., 670976.,
      598916., 604136., 609356., 614576., 620912., 626144., 631376., 636608.,
      643004., 648248., 653492., 658736., 665192., 670448., 675704., 680960.,
      603188., 608456., 613724., 618992., 625376., 630656., 635936., 641216.,
      647660., 652952., 658244., 663536., 670040., 675344., 680648., 685952.,
      607460., 612776., 618092., 623408., 629840., 635168., 640496., 645824.,
      652316., 657656., 662996., 668336., 674888., 680240., 685592., 690944.,
      611732., 617096., 622460., 627824., 634304., 639680., 645056., 650432.,
      656972., 662360., 667748., 673136., 679736., 685136., 690536., 695936.,
      616004., 621416., 626828., 632240., 638768., 644192., 649616., 655040.,
      661628., 667064., 672500., 677936., 684584., 690032., 695480., 700928.,
      620276., 625736., 631196., 636656., 643232., 648704., 654176., 659648.,
      666284., 671768., 677252., 682736., 689432., 694928., 700424., 705920.,
      624548., 630056., 635564., 641072., 647696., 653216., 658736., 664256.,
      670940., 676472., 682004., 687536., 694280., 699824., 705368., 710912.,
      633092., 638696., 644300., 649904., 656624., 662240., 667856., 673472.,
      680252., 685880., 691508., 697136., 703976., 709616., 715256., 720896.,
      637364., 643016., 648668., 654320., 661088., 666752., 672416., 678080.,
      684908., 690584., 696260., 701936., 708824., 714512., 720200., 725888.,
      641636., 647336., 653036., 658736., 665552., 671264., 676976., 682688.,
      689564., 695288., 701012., 706736., 713672., 719408., 725144., 730880.,
      645908., 651656., 657404., 663152., 670016., 675776., 681536., 687296.,
      694220., 699992., 705764., 711536., 718520., 724304., 730088., 735872.,
      650180., 655976., 661772., 667568., 674480., 680288., 686096., 691904.,
      698876., 704696., 710516., 716336., 723368., 729200., 735032., 740864.,
      654452., 660296., 666140., 671984., 678944., 684800., 690656., 696512.,
      703532., 709400., 715268., 721136., 728216., 734096., 739976., 745856.,
      658724., 664616., 670508., 676400., 683408., 689312., 695216., 701120.,
      708188., 714104., 720020., 725936., 733064., 738992., 744920., 750848.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1365135., 1594320., 1823940., 2053980., 1827180., 1599990., 1372425.,
      1658574., 1936431., 2214648., 2493207., 2217240., 1940967., 1664406.,
      1955415., 2282322., 2609460., 2936808., 2610972., 2284968., 1958817.,
      2254200., 2630292., 3006432., 3382596., 3006432., 2630292., 2254200.,
      1958817., 2284968., 2610972., 2936808., 2609460., 2282322., 1955415.,
      1664406., 1940967., 2217240., 2493207., 2214648., 1936431., 1658574.,
      1372425., 1599990., 1827180., 2053980., 1823940., 1594320., 1365135.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      18741., 18912., 19083., 19254., 19425., 19596., 19767., 20280., 20451.,
      20622., 20793., 20964., 21135., 21306., 21819., 21990., 22161., 22332.,
      22503., 22674., 22845., 23358., 23529., 23700., 23871., 24042., 24213.,
      24384., 24897., 25068., 25239., 25410., 25581., 25752., 25923., 26436.,
      26607., 26778., 26949., 27120., 27291., 27462., 27975., 28146., 28317.,
      28488., 28659., 28830., 29001.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2721855., 2730270., 3178770., 3188640., 3636540., 3647880., 4095135.,
      4107960., 3642900., 3654360., 3189900., 3199980., 2736165., 2744850.,
      3306564., 3317148., 3860451., 3872862., 4415040., 4429296., 4970295.,
      4986414., 4420080., 4434480., 3869271., 3881934., 3317904., 3328812.,
      3897915., 3910830., 4549503., 4564644., 5201532., 5218920., 5853960.,
      5873616., 5204388., 5221944., 4554501., 4569936., 3904341., 3917634.,
      4492992., 4508400., 5242524., 5260584., 5992128., 6012864., 6741756.,
      6765192., 5991936., 6012864., 5242188., 5260584., 4492560., 4508400.,
      3903585., 3917634., 4553472., 4569936., 5203044., 5221944., 5852259.,
      5873616., 5199852., 5218920., 4547886., 4564644., 3896403., 3910830.,
      3316284., 3328812., 3867255., 3881934., 4417632., 4434480., 4967379.,
      4986414., 4412304., 4429296., 3857931., 3872862., 3304296., 3317148.,
      2734005., 2744850., 3187275., 3199980., 3639780., 3654360., 4091490.,
      4107960., 3633180., 3647880., 3175725., 3188640., 2719155., 2730270.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      36069., 37482., 36393., 37824., 36717., 38166., 37041., 38508., 37365.,
      38850., 37689., 39192., 38013., 39534., 38985., 40560., 39309., 40902.,
      39633., 41244., 39957., 41586., 40281., 41928., 40605., 42270., 40929.,
      42612., 41901., 43638., 42225., 43980., 42549., 44322., 42873., 44664.,
      43197., 45006., 43521., 45348., 43845., 45690., 44817., 46716., 45141.,
      47058., 45465., 47400., 45789., 47742., 46113., 48084., 46437., 48426.,
      46761., 48768., 47733., 49794., 48057., 50136., 48381., 50478., 48705.,
      50820., 49029., 51162., 49353., 51504., 49677., 51846., 50649., 52872.,
      50973., 53214., 51297., 53556., 51621., 53898., 51945., 54240., 52269.,
      54582., 52593., 54924., 53565., 55950., 53889., 56292., 54213., 56634.,
      54537., 56976., 54861., 57318., 55185., 57660., 55509., 58002.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5435295.,  5443710.,  5452125.,  5460540.,  6347670.,  6357540.,
      6367410.,  6377280.,  7261740.,  7273080.,  7284420.,  7295760.,
      8177445.,  8190270.,  8203095.,  8215920.,  7274340.,  7285800.,
      7297260.,  7308720.,  6369720.,  6379800.,  6389880.,  6399960.,
      5463645.,  5472330.,  5481015.,  5489700.,  6602544.,  6613128.,
      6623712.,  6634296.,  7708491.,  7720902.,  7733313.,  7745724.,
      8815824.,  8830080.,  8844336.,  8858592.,  9924471.,  9940590.,
      9956709.,  9972828.,  8825760.,  8840160.,  8854560.,  8868960.,
      7725879.,  7738542.,  7751205.,  7763868.,  6624900.,  6635808.,
      6646716.,  6657624.,  7782915.,  7795830.,  7808745.,  7821660.,
      9083865.,  9099006.,  9114147.,  9129288.,  10385676., 10403064.,
      10420452., 10437840., 11688264., 11707920., 11727576., 11747232.,
      10391220., 10408776., 10426332., 10443888., 9093567.,  9109002.,
      9124437.,  9139872.,  7795389.,  7808682.,  7821975.,  7835268.,
      8970576.,  8985984.,  9001392.,  9016800.,  10466988., 10485048.,
      10503108., 10521168., 11963520., 11984256., 12004992., 12025728.,
      13460076., 13483512., 13506948., 13530384., 11962944., 11983872.,
      12004800., 12025728., 10465980., 10484376., 10502772., 10521168.,
      8969280.,  8985120.,  9000960.,  9016800.,  7793121.,  7807170.,
      7821219.,  7835268.,  9090480.,  9106944.,  9123408.,  9139872.,
      10387188., 10406088., 10424988., 10443888., 11683161., 11704518.,
      11725875., 11747232., 10380636., 10399704., 10418772., 10437840.,
      9079014.,  9095772.,  9112530.,  9129288.,  7778379.,  7792806.,
      7807233.,  7821660.,  6620040.,  6632568.,  6645096.,  6657624.,
      7719831.,  7734510.,  7749189.,  7763868.,  8818416.,  8835264.,
      8852112.,  8868960.,  9915723.,  9934758.,  9953793.,  9972828.,
      8807616.,  8824608.,  8841600.,  8858592.,  7700931.,  7715862.,
      7730793.,  7745724.,  6595740.,  6608592.,  6621444.,  6634296.,
      5457165.,  5468010.,  5478855.,  5489700.,  6361845.,  6374550.,
      6387255.,  6399960.,  7264980.,  7279560.,  7294140.,  7308720.,
      8166510.,  8182980.,  8199450.,  8215920.,  7251660.,  7266360.,
      7281060.,  7295760.,  6338535.,  6351450.,  6364365.,  6377280.,
      5427195.,  5438310.,  5449425.,  5460540.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      70725.,  72138.,  73551.,  74964.,  71355.,  72786.,  74217.,  75648.,
      71985.,  73434.,  74883.,  76332.,  72615.,  74082.,  75549.,  77016.,
      73245.,  74730.,  76215.,  77700.,  73875.,  75378.,  76881.,  78384.,
      74505.,  76026.,  77547.,  79068.,  76395.,  77970.,  79545.,  81120.,
      77025.,  78618.,  80211.,  81804.,  77655.,  79266.,  80877.,  82488.,
      78285.,  79914.,  81543.,  83172.,  78915.,  80562.,  82209.,  83856.,
      79545.,  81210.,  82875.,  84540.,  80175.,  81858.,  83541.,  85224.,
      82065.,  83802.,  85539.,  87276.,  82695.,  84450.,  86205.,  87960.,
      83325.,  85098.,  86871.,  88644.,  83955.,  85746.,  87537.,  89328.,
      84585.,  86394.,  88203.,  90012.,  85215.,  87042.,  88869.,  90696.,
      85845.,  87690.,  89535.,  91380.,  87735.,  89634.,  91533.,  93432.,
      88365.,  90282.,  92199.,  94116.,  88995.,  90930.,  92865.,  94800.,
      89625.,  91578.,  93531.,  95484.,  90255.,  92226.,  94197.,  96168.,
      90885.,  92874.,  94863.,  96852.,  91515.,  93522.,  95529.,  97536.,
      93405.,  95466.,  97527.,  99588.,  94035.,  96114.,  98193.,  100272.,
      94665.,  96762.,  98859.,  100956., 95295.,  97410.,  99525.,  101640.,
      95925.,  98058.,  100191., 102324., 96555.,  98706.,  100857., 103008.,
      97185.,  99354.,  101523., 103692., 99075.,  101298., 103521., 105744.,
      99705.,  101946., 104187., 106428., 100335., 102594., 104853., 107112.,
      100965., 103242., 105519., 107796., 101595., 103890., 106185., 108480.,
      102225., 104538., 106851., 109164., 102855., 105186., 107517., 109848.,
      104745., 107130., 109515., 111900., 105375., 107778., 110181., 112584.,
      106005., 108426., 110847., 113268., 106635., 109074., 111513., 113952.,
      107265., 109722., 112179., 114636., 107895., 110370., 112845., 115320.,
      108525., 111018., 113511., 116004.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5421570.,  5460540.,  6331815.,  6377280.,  7243800.,  7295760.,
      8157465.,  8215920.,  7256760.,  7308720.,  6354495.,  6399960.,
      5450730.,  5489700.,  6587532.,  6634296.,  7691166.,  7745724.,
      8796240.,  8858592.,  9902682.,  9972828.,  8806608.,  8868960.,
      7709310.,  7763868.,  6610860.,  6657624.,  7767102.,  7821660.,
      9065637.,  9129288.,  10365096., 10437840., 11665395., 11747232.,
      10371144., 10443888., 9076221.,  9139872.,  7780710.,  7835268.,
      8954448.,  9016800.,  10448424., 10521168., 11942592., 12025728.,
      13436856., 13530384., 11942592., 12025728., 10448424., 10521168.,
      8954448.,  9016800.,  7780710.,  7835268.,  9076221.,  9139872.,
      10371144., 10443888., 11665395., 11747232., 10365096., 10437840.,
      9065637.,  9129288.,  7767102.,  7821660.,  6610860.,  6657624.,
      7709310.,  7763868.,  8806608.,  8868960.,  9902682.,  9972828.,
      8796240.,  8858592.,  7691166.,  7745724.,  6587532.,  6634296.,
      5450730.,  5489700.,  6354495.,  6399960.,  7256760.,  7308720.,
      8157465.,  8215920.,  7243800.,  7295760.,  6331815.,  6377280.,
      5421570.,  5460540.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      71814.,  74964.,  72462.,  75648.,  73110.,  76332.,  73758.,  77016.,
      74406.,  77700.,  75054.,  78384.,  75702.,  79068.,  77646.,  81120.,
      78294.,  81804.,  78942.,  82488.,  79590.,  83172.,  80238.,  83856.,
      80886.,  84540.,  81534.,  85224.,  83478.,  87276.,  84126.,  87960.,
      84774.,  88644.,  85422.,  89328.,  86070.,  90012.,  86718.,  90696.,
      87366.,  91380.,  89310.,  93432.,  89958.,  94116.,  90606.,  94800.,
      91254.,  95484.,  91902.,  96168.,  92550.,  96852.,  93198.,  97536.,
      95142.,  99588.,  95790.,  100272., 96438.,  100956., 97086.,  101640.,
      97734.,  102324., 98382.,  103008., 99030.,  103692., 100974., 105744.,
      101622., 106428., 102270., 107112., 102918., 107796., 103566., 108480.,
      104214., 109164., 104862., 109848., 106806., 111900., 107454., 112584.,
      108102., 113268., 108750., 113952., 109398., 114636., 110046., 115320.,
      110694., 116004.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4448928.,  4465668.,  4505274.,  4522104.,  5178523.,  5198158.,
      5244260.,  5264000.,  6006288.,  6028848.,  6081928.,  6104608.,
      6831239.,  6856754.,  6916782.,  6942432.,  6079584.,  6102384.,
      6155736.,  6178656.,  5332007.,  5352062.,  5398768.,  5418928.,
      4588628.,  4605908.,  4645998.,  4663368.,  5486292.,  5507352.,
      5555136.,  5576304.,  6383300.,  6407996.,  6463618.,  6488440.,
      7386064.,  7414432.,  7478368.,  7506880.,  8384360.,  8416436.,
      8488650.,  8520888.,  7455152.,  7483808.,  7547968.,  7576768.,
      6531724.,  6556924.,  6613066.,  6638392.,  5614220.,  5635928.,
      5684088.,  5705904.,  6495252.,  6520956.,  6576594.,  6602424.,
      7553427.,  7583562.,  7648326.,  7678608.,  8724512.,  8759120.,
      8833480.,  8868256.,  9889043.,  9928166.,  10012080., 10051392.,
      8785936.,  8820880.,  8895416.,  8930528.,  7690743.,  7721466.,
      7786666.,  7817536.,  6603632.,  6630092.,  6685998.,  6712584.,
      7464144.,  7494816.,  7557984.,  7588800.,  8675296.,  8711248.,
      8784776.,  8820896.,  10006080., 10047360., 10131712., 10173184.,
      11327792., 11374448., 11469576., 11516448., 10056384., 10098048.,
      10182528., 10224384., 8795456.,  8832080.,  8905960.,  8942752.,
      7545200.,  7576736.,  7640064.,  7671744.,  6815112.,  6843084.,
      6899526.,  6927624.,  7919597.,  7952378.,  8018080.,  8051008.,
      9153424.,  9191056.,  9266488.,  9304288.,  10378697., 10421222.,
      10506342., 10549056., 9217280.,  9255248.,  9330856.,  9368992.,
      8065777.,  8099146.,  8165284.,  8198800.,  6924356.,  6953084.,
      7009794.,  7038648.,  6284772.,  6309720.,  6359760.,  6384816.,
      7303884.,  7333116.,  7391370.,  7420728.,  8314512.,  8348064.,
      8414496.,  8448192.,  9316512.,  9354420.,  9428994.,  9467064.,
      8244336.,  8278176.,  8344320.,  8378304.,  7181076.,  7210812.,
      7268562.,  7298424.,  6126876.,  6152472.,  6201864.,  6227568.,
      4981620.,  5003220.,  5044110.,  5065800.,  5784485.,  5809790.,
      5857390.,  5882800.,  6579200.,  6608240.,  6662520.,  6691680.,
      7365645.,  7398450.,  7459380.,  7492320.,  6512080.,  6541360.,
      6595400.,  6624800.,  5667025.,  5692750.,  5739930.,  5765760.,
      4830600.,  4852740.,  4893090.,  4915320.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      140820., 143628., 147102., 149928., 142080., 144924., 148434., 151296.,
      143340., 146220., 149766., 152664., 144600., 147516., 151098., 154032.,
      145860., 148812., 152430., 155400., 147120., 150108., 153762., 156768.,
      148380., 151404., 155094., 158136., 152160., 155292., 159090., 162240.,
      153420., 156588., 160422., 163608., 154680., 157884., 161754., 164976.,
      155940., 159180., 163086., 166344., 157200., 160476., 164418., 167712.,
      158460., 161772., 165750., 169080., 159720., 163068., 167082., 170448.,
      163500., 166956., 171078., 174552., 164760., 168252., 172410., 175920.,
      166020., 169548., 173742., 177288., 167280., 170844., 175074., 178656.,
      168540., 172140., 176406., 180024., 169800., 173436., 177738., 181392.,
      171060., 174732., 179070., 182760., 174840., 178620., 183066., 186864.,
      176100., 179916., 184398., 188232., 177360., 181212., 185730., 189600.,
      178620., 182508., 187062., 190968., 179880., 183804., 188394., 192336.,
      181140., 185100., 189726., 193704., 182400., 186396., 191058., 195072.,
      186180., 190284., 195054., 199176., 187440., 191580., 196386., 200544.,
      188700., 192876., 197718., 201912., 189960., 194172., 199050., 203280.,
      191220., 195468., 200382., 204648., 192480., 196764., 201714., 206016.,
      193740., 198060., 203046., 207384., 197520., 201948., 207042., 211488.,
      198780., 203244., 208374., 212856., 200040., 204540., 209706., 214224.,
      201300., 205836., 211038., 215592., 202560., 207132., 212370., 216960.,
      203820., 208428., 213702., 218328., 205080., 209724., 215034., 219696.,
      208860., 213612., 219030., 223800., 210120., 214908., 220362., 225168.,
      211380., 216204., 221694., 226536., 212640., 217500., 223026., 227904.,
      213900., 218796., 224358., 229272., 215160., 220092., 225690., 230640.,
      216420., 221388., 227022., 232008.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3886044.,  3902784.,  3919524.,  3936264.,  3977142.,  3993972.,
      4010802.,  4027632.,  4651139.,  4670774.,  4690409.,  4710044.,
      4757932.,  4777672.,  4797412.,  4817152.,  5504512.,  5527072.,
      5549632.,  5572192.,  5627512.,  5650192.,  5672872.,  5695552.,
      6382435.,  6407950.,  6433465.,  6458980.,  6522154.,  6547804.,
      6573454.,  6599104.,  5698480.,  5721280.,  5744080.,  5766880.,
      5823016.,  5845936.,  5868856.,  5891776.,  5029879.,  5049934.,
      5069989.,  5090044.,  5139232.,  5159392.,  5179552.,  5199712.,
      4376872.,  4394152.,  4411432.,  4428712.,  4471042.,  4488412.,
      4505782.,  4523152.,  5108580.,  5129640.,  5150700.,  5171760.,
      5221584.,  5242752.,  5263920.,  5285088.,  6072080.,  6096776.,
      6121472.,  6146168.,  6204430.,  6229252.,  6254074.,  6278896.,
      7128784.,  7157152.,  7185520.,  7213888.,  7280992.,  7309504.,
      7338016.,  7366528.,  8214916.,  8246992.,  8279068.,  8311144.,
      8387494.,  8419732.,  8451970.,  8484208.,  7315312.,  7343968.,
      7372624.,  7401280.,  7469056.,  7497856.,  7526656.,  7555456.,
      6435496.,  6460696.,  6485896.,  6511096.,  6570406.,  6595732.,
      6621058.,  6646384.,  5575756.,  5597464.,  5619172.,  5640880.,
      5691832.,  5713648.,  5735464.,  5757280.,  6218688.,  6244392.,
      6270096.,  6295800.,  6353598.,  6379428.,  6405258.,  6431088.,
      7358831.,  7388966.,  7419101.,  7449236.,  7516738.,  7547020.,
      7577302.,  7607584.,  8596240.,  8630848.,  8665456.,  8700064.,
      8777656.,  8812432.,  8847208.,  8881984.,  9867091.,  9906214.,
      9945337.,  9984460.,  10072528., 10111840., 10151152., 10190464.,
      8768416.,  8803360.,  8838304.,  8873248.,  8951368.,  8986480.,
      9021592.,  9056704.,  7694827.,  7725550.,  7756273.,  7786996.,
      7855294.,  7886164.,  7917034.,  7947904.,  6646660.,  6673120.,
      6699580.,  6726040.,  6784642.,  6811228.,  6837814.,  6864400.,
      7193040.,  7223712.,  7254384.,  7285056.,  7349856.,  7380672.,
      7411488.,  7442304.,  8484176.,  8520128.,  8556080.,  8592032.,
      8667640.,  8703760.,  8739880.,  8776000.,  9875776.,  9917056.,
      9958336.,  9999616.,  10086400., 10127872., 10169344., 10210816.,
      11303968., 11350624., 11397280., 11443936., 11542264., 11589136.,
      11636008., 11682880., 10026688., 10068352., 10110016., 10151680.,
      10238848., 10280704., 10322560., 10364416., 8780656.,  8817280.,
      8853904.,  8890528.,  8966680.,  9003472.,  9040264.,  9077056.,
      7566256.,  7597792.,  7629328.,  7660864.,  7726144.,  7757824.,
      7789504.,  7821184.,  7151052.,  7179024.,  7206996.,  7234968.,
      7295178.,  7323276.,  7351374.,  7379472.,  8454605.,  8487386.,
      8520167.,  8552948.,  8623264.,  8656192.,  8689120.,  8722048.,
      9870880.,  9908512.,  9946144.,  9983776.,  10064584., 10102384.,
      10140184., 10177984., 11261813., 11304338., 11346863., 11389388.,
      11480562., 11523276., 11565990., 11608704., 9999280.,  10037248.,
      10075216., 10113184., 10194008., 10232144., 10270280., 10308416.,
      8764809.,  8798178.,  8831547.,  8864916.,  8935516.,  8969032.,
      9002548.,  9036064.,  7558736.,  7587464.,  7616192.,  7644920.,
      7705422.,  7734276.,  7763130.,  7791984.,  6996564.,  7021512.,
      7046460.,  7071408.,  7124928.,  7149984.,  7175040.,  7200096.,
      8293224.,  8322456.,  8351688.,  8380920.,  8443494.,  8472852.,
      8502210.,  8531568.,  9566736.,  9600288.,  9633840.,  9667392.,
      9738912.,  9772608.,  9806304.,  9840000.,  10816812., 10854720.,
      10892628., 10930536., 11010894., 11048964., 11087034., 11125104.,
      9586352.,  9620192.,  9654032.,  9687872.,  9759040.,  9793024.,
      9827008.,  9860992.,  8380928.,  8410664.,  8440400.,  8470136.,
      8532222.,  8562084.,  8591946.,  8621808.,  7200828.,  7226424.,
      7252020.,  7277616.,  7330728.,  7356432.,  7382136.,  7407840.,
      6255240.,  6276840.,  6298440.,  6320040.,  6364770.,  6386460.,
      6408150.,  6429840.,  7224945.,  7250250.,  7275555.,  7300860.,
      7352730.,  7378140.,  7403550.,  7428960.,  8173200.,  8202240.,
      8231280.,  8260320.,  8319240.,  8348400.,  8377560.,  8406720.,
      9099765.,  9132570.,  9165375.,  9198180.,  9264060.,  9297000.,
      9329940.,  9362880.,  7997760.,  8027040.,  8056320.,  8085600.,
      8143800.,  8173200.,  8202600.,  8232000.,  6917925.,  6943650.,
      6969375.,  6995100.,  7045710.,  7071540.,  7097370.,  7123200.,
      5860500.,  5882640.,  5904780.,  5926920.,  5970030.,  5992260.,
      6014490.,  6036720.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      278832., 281640., 284448., 287256., 291378., 294204., 297030., 299856.,
      281316., 284160., 287004., 289848., 294006., 296868., 299730., 302592.,
      283800., 286680., 289560., 292440., 296634., 299532., 302430., 305328.,
      286284., 289200., 292116., 295032., 299262., 302196., 305130., 308064.,
      288768., 291720., 294672., 297624., 301890., 304860., 307830., 310800.,
      291252., 294240., 297228., 300216., 304518., 307524., 310530., 313536.,
      293736., 296760., 299784., 302808., 307146., 310188., 313230., 316272.,
      301188., 304320., 307452., 310584., 315030., 318180., 321330., 324480.,
      303672., 306840., 310008., 313176., 317658., 320844., 324030., 327216.,
      306156., 309360., 312564., 315768., 320286., 323508., 326730., 329952.,
      308640., 311880., 315120., 318360., 322914., 326172., 329430., 332688.,
      311124., 314400., 317676., 320952., 325542., 328836., 332130., 335424.,
      313608., 316920., 320232., 323544., 328170., 331500., 334830., 338160.,
      316092., 319440., 322788., 326136., 330798., 334164., 337530., 340896.,
      323544., 327000., 330456., 333912., 338682., 342156., 345630., 349104.,
      326028., 329520., 333012., 336504., 341310., 344820., 348330., 351840.,
      328512., 332040., 335568., 339096., 343938., 347484., 351030., 354576.,
      330996., 334560., 338124., 341688., 346566., 350148., 353730., 357312.,
      333480., 337080., 340680., 344280., 349194., 352812., 356430., 360048.,
      335964., 339600., 343236., 346872., 351822., 355476., 359130., 362784.,
      338448., 342120., 345792., 349464., 354450., 358140., 361830., 365520.,
      345900., 349680., 353460., 357240., 362334., 366132., 369930., 373728.,
      348384., 352200., 356016., 359832., 364962., 368796., 372630., 376464.,
      350868., 354720., 358572., 362424., 367590., 371460., 375330., 379200.,
      353352., 357240., 361128., 365016., 370218., 374124., 378030., 381936.,
      355836., 359760., 363684., 367608., 372846., 376788., 380730., 384672.,
      358320., 362280., 366240., 370200., 375474., 379452., 383430., 387408.,
      360804., 364800., 368796., 372792., 378102., 382116., 386130., 390144.,
      368256., 372360., 376464., 380568., 385986., 390108., 394230., 398352.,
      370740., 374880., 379020., 383160., 388614., 392772., 396930., 401088.,
      373224., 377400., 381576., 385752., 391242., 395436., 399630., 403824.,
      375708., 379920., 384132., 388344., 393870., 398100., 402330., 406560.,
      378192., 382440., 386688., 390936., 396498., 400764., 405030., 409296.,
      380676., 384960., 389244., 393528., 399126., 403428., 407730., 412032.,
      383160., 387480., 391800., 396120., 401754., 406092., 410430., 414768.,
      390612., 395040., 399468., 403896., 409638., 414084., 418530., 422976.,
      393096., 397560., 402024., 406488., 412266., 416748., 421230., 425712.,
      395580., 400080., 404580., 409080., 414894., 419412., 423930., 428448.,
      398064., 402600., 407136., 411672., 417522., 422076., 426630., 431184.,
      400548., 405120., 409692., 414264., 420150., 424740., 429330., 433920.,
      403032., 407640., 412248., 416856., 422778., 427404., 432030., 436656.,
      405516., 410160., 414804., 419448., 425406., 430068., 434730., 439392.,
      412968., 417720., 422472., 427224., 433290., 438060., 442830., 447600.,
      415452., 420240., 425028., 429816., 435918., 440724., 445530., 450336.,
      417936., 422760., 427584., 432408., 438546., 443388., 448230., 453072.,
      420420., 425280., 430140., 435000., 441174., 446052., 450930., 455808.,
      422904., 427800., 432696., 437592., 443802., 448716., 453630., 458544.,
      425388., 430320., 435252., 440184., 446430., 451380., 456330., 461280.,
      427872., 432840., 437808., 442776., 449058., 454044., 459030., 464016.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4774050.,  4814856.,  4855842.,  4897008.,  5581989.,  5629596.,
      5677413.,  5725440.,  6596056.,  6650976.,  6706136.,  6761536.,
      7614795.,  7677028.,  7739531.,  7802304.,  6824536.,  6879968.,
      6935640.,  6991552.,  6032133.,  6080764.,  6129605.,  6178656.,
      5237826.,  5279656.,  5321666.,  5363856.,  6356508.,  6406704.,
      6457116.,  6507744.,  7424438.,  7483000.,  7541814.,  7600880.,
      8715728.,  8783168.,  8850896.,  8918912.,  10010442., 10086760.,
      10163402., 10240368., 8952272.,  9020224.,  9088464.,  9156992.,
      7893302.,  7952888.,  8012726.,  8072816.,  6833820.,  6885040.,
      6936476.,  6988128.,  7880758.,  7938296.,  7996086.,  8054128.,
      9191687.,  9258644.,  9325895.,  9393440.,  10744392., 10821280.,
      10898504., 10976064., 12300457., 12387276., 12474473., 12562048.,
      10977480., 11054368., 11131592., 11209152., 9655911.,  9722868.,
      9790119.,  9857664.,  8348886.,  8406424.,  8464214.,  8522256.,
      9465808.,  9529664.,  9593808.,  9658240.,  11044424., 11118752.,
      11193416., 11268416., 12882368., 12967680., 13053376., 13139456.,
      14722744., 14819040., 14915768., 15012928., 12882368., 12967680.,
      13053376., 13139456., 11044424., 11118752., 11193416., 11268416.,
      9465808.,  9529664.,  9593808.,  9658240.,  8348886.,  8406424.,
      8464214.,  8522256.,  9655911.,  9722868.,  9790119.,  9857664.,
      10977480., 11054368., 11131592., 11209152., 12300457., 12387276.,
      12474473., 12562048., 10744392., 10821280., 10898504., 10976064.,
      9191687.,  9258644.,  9325895.,  9393440.,  7880758.,  7938296.,
      7996086.,  8054128.,  6833820.,  6885040.,  6936476.,  6988128.,
      7893302.,  7952888.,  8012726.,  8072816.,  8952272.,  9020224.,
      9088464.,  9156992.,  10010442., 10086760., 10163402., 10240368.,
      8715728.,  8783168.,  8850896.,  8918912.,  7424438.,  7483000.,
      7541814.,  7600880.,  6356508.,  6406704.,  6457116.,  6507744.,
      5237826.,  5279656.,  5321666.,  5363856.,  6032133.,  6080764.,
      6129605.,  6178656.,  6824536.,  6879968.,  6935640.,  6991552.,
      7614795.,  7677028.,  7739531.,  7802304.,  6596056.,  6650976.,
      6706136.,  6761536.,  5581989.,  5629596.,  5677413.,  5725440.,
      4774050.,  4814856.,  4855842.,  4897008.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281010., 287256., 293538., 299856., 283530., 289848., 296202., 302592.,
      286050., 292440., 298866., 305328., 288570., 295032., 301530., 308064.,
      291090., 297624., 304194., 310800., 293610., 300216., 306858., 313536.,
      296130., 302808., 309522., 316272., 303690., 310584., 317514., 324480.,
      306210., 313176., 320178., 327216., 308730., 315768., 322842., 329952.,
      311250., 318360., 325506., 332688., 313770., 320952., 328170., 335424.,
      316290., 323544., 330834., 338160., 318810., 326136., 333498., 340896.,
      326370., 333912., 341490., 349104., 328890., 336504., 344154., 351840.,
      331410., 339096., 346818., 354576., 333930., 341688., 349482., 357312.,
      336450., 344280., 352146., 360048., 338970., 346872., 354810., 362784.,
      341490., 349464., 357474., 365520., 349050., 357240., 365466., 373728.,
      351570., 359832., 368130., 376464., 354090., 362424., 370794., 379200.,
      356610., 365016., 373458., 381936., 359130., 367608., 376122., 384672.,
      361650., 370200., 378786., 387408., 364170., 372792., 381450., 390144.,
      371730., 380568., 389442., 398352., 374250., 383160., 392106., 401088.,
      376770., 385752., 394770., 403824., 379290., 388344., 397434., 406560.,
      381810., 390936., 400098., 409296., 384330., 393528., 402762., 412032.,
      386850., 396120., 405426., 414768., 394410., 403896., 413418., 422976.,
      396930., 406488., 416082., 425712., 399450., 409080., 418746., 428448.,
      401970., 411672., 421410., 431184., 404490., 414264., 424074., 433920.,
      407010., 416856., 426738., 436656., 409530., 419448., 429402., 439392.,
      417090., 427224., 437394., 447600., 419610., 429816., 440058., 450336.,
      422130., 432408., 442722., 453072., 424650., 435000., 445386., 455808.,
      427170., 437592., 448050., 458544., 429690., 440184., 450714., 461280.,
      432210., 442776., 453378., 464016.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4280022.,  4298052.,  4340040.,  4358160.,  4400418.,  4418628.,
      4461156.,  4479456.,  5037645.,  5058890.,  5108178.,  5129528.,
      5179131.,  5200586.,  5250504.,  5272064.,  5991912.,  6016432.,
      6073472.,  6098112.,  6155512.,  6180272.,  6238032.,  6262912.,
      7015367.,  7043222.,  7108466.,  7136456.,  7202105.,  7230230.,
      7296284.,  7324544.,  6280968.,  6305968.,  6364064.,  6389184.,
      6447640.,  6472880.,  6531696.,  6557056.,  5556677.,  5578762.,
      5629770.,  5651960.,  5703283.,  5725578.,  5777216.,  5799616.,
      4842974.,  4862084.,  4906064.,  4925264.,  4969514.,  4988804.,
      5033324.,  5052704.,  5746716.,  5770296.,  5822424.,  5846112.,
      5898564.,  5922360.,  5975136.,  5999040.,  6752506.,  6780268.,
      6841344.,  6869232.,  6930686.,  6958700.,  7020532.,  7048672.,
      7968912.,  8000928.,  8071392.,  8103552.,  8174448.,  8206752.,
      8278080.,  8310528.,  9268382.,  9304724.,  9385016.,  9421520.,
      9502298.,  9538964.,  9620228.,  9657056.,  8276048.,  8308640.,
      8380064.,  8412800.,  8484656.,  8517536.,  8589824.,  8622848.,
      7298570.,  7327340.,  7389968.,  7418864.,  7481870.,  7510892.,
      7574276.,  7603424.,  6336524.,  6361400.,  6415304.,  6440288.,
      6494516.,  6519608.,  6574160.,  6599360.,  6987802.,  7015532.,
      7075104.,  7102960.,  7162910.,  7190892.,  7251220.,  7279328.,
      8189747.,  8222222.,  8291770.,  8324392.,  8394381.,  8427150.,
      8497580.,  8530496.,  9618648.,  9655952.,  9735904.,  9773376.,
      9853832.,  9891472.,  9972432.,  10010240., 11146857., 11189074.,
      11279858., 11322264., 11413615., 11456210., 11548128., 11590912.,
      9921336.,  9958800.,  10039104., 10076736., 10157544., 10195344.,
      10276656., 10314624., 8717147.,  8749774.,  8819682.,  8852456.,
      8922805.,  8955726.,  9026516.,  9059584.,  7560050.,  7588268.,
      7648376.,  7676720.,  7737206.,  7765676.,  7826540.,  7855136.,
      8240272.,  8271776.,  8337120.,  8368768.,  8434544.,  8466336.,
      8532544.,  8564480.,  9669208.,  9706128.,  9782368.,  9819456.,
      9896200.,  9933456.,  10010704., 10048128., 11339712., 11382144.,
      11469696., 11512320., 11600448., 11643264., 11731968., 11774976.,
      13124040., 13172080., 13271360., 13319616., 13419544., 13468016.,
      13568592., 13617280., 11440320., 11483008., 11570816., 11613696.,
      11702080., 11745152., 11834112., 11877376., 9782040.,  9819280.,
      9895712.,  9933120.,  10010056., 10047632., 10125072., 10162816.,
      8400336.,  8432544.,  8498208.,  8530560.,  8596656.,  8629152.,
      8695680.,  8728320.,  7985058.,  8014252.,  8075432.,  8104752.,
      8166310.,  8195756.,  8257692.,  8287264.,  9320775.,  9354958.,
      9426382.,  9460712.,  9532577.,  9567054.,  9639360.,  9673984.,
      10656312., 10695568., 10777664., 10817088., 10899688., 10939280.,
      11022384., 11062144., 11978197., 12022610., 12115294., 12159896.,
      12253147., 12297938., 12391756., 12436736., 10454168., 10493584.,
      10575520., 10615104., 10697544., 10737296., 10820240., 10860160.,
      8953327.,  8987662.,  9058934.,  9093416.,  9165129.,  9199758.,
      9271912.,  9306688.,  7689850.,  7719532.,  7780736.,  7810544.,
      7872126.,  7902060.,  7964020.,  7994080.,  6761148.,  6787384.,
      6841976.,  6868320.,  6923236.,  6949688.,  7004928.,  7031488.,
      7928458.,  7959148.,  8022928.,  8053744.,  8117902.,  8148844.,
      8213380.,  8244448.,  9082384.,  9117600.,  9190496.,  9225856.,
      9299184.,  9334688.,  9408448.,  9444096.,  10222350., 10262164.,
      10344104., 10384080., 10466506., 10506644., 10589556., 10629856.,
      8929232.,  8964512.,  9036832.,  9072256.,  9145008.,  9180576.,
      9253760.,  9289472.,  7657370.,  7688044.,  7750816.,  7781616.,
      7844766.,  7875692.,  7939220.,  7970272.,  6583980.,  6610488.,
      6664296.,  6690912.,  6745044.,  6771768.,  6826224.,  6853056.,
      5717022.,  5739652.,  5785232.,  5807952.,  5853802.,  5876612.,
      5922732.,  5945632.,  6564033.,  6590474.,  6643270.,  6669816.,
      6722927.,  6749578.,  6803004.,  6829760.,  7396936.,  7427248.,
      7487200.,  7517632.,  7577944.,  7608496.,  7669168.,  7699840.,
      8215251.,  8249494.,  8316542.,  8350920.,  8418373.,  8452886.,
      8520744.,  8555392.,  7120232.,  7150512.,  7209472.,  7239872.,
      7299192.,  7329712.,  7389392.,  7420032.,  6044857.,  6071114.,
      6122046.,  6148408.,  6199655.,  6226122.,  6277684.,  6304256.,
      5129382.,  5152068.,  5195544.,  5218320.,  5262066.,  5284932.,
      5328948.,  5351904.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      556422., 562020., 568896., 574512., 581442., 587076., 594060., 599712.,
      561390., 567060., 574008., 579696., 586698., 592404., 599460., 605184.,
      566358., 572100., 579120., 584880., 591954., 597732., 604860., 610656.,
      571326., 577140., 584232., 590064., 597210., 603060., 610260., 616128.,
      576294., 582180., 589344., 595248., 602466., 608388., 615660., 621600.,
      581262., 587220., 594456., 600432., 607722., 613716., 621060., 627072.,
      586230., 592260., 599568., 605616., 612978., 619044., 626460., 632544.,
      601134., 607380., 614904., 621168., 628746., 635028., 642660., 648960.,
      606102., 612420., 620016., 626352., 634002., 640356., 648060., 654432.,
      611070., 617460., 625128., 631536., 639258., 645684., 653460., 659904.,
      616038., 622500., 630240., 636720., 644514., 651012., 658860., 665376.,
      621006., 627540., 635352., 641904., 649770., 656340., 664260., 670848.,
      625974., 632580., 640464., 647088., 655026., 661668., 669660., 676320.,
      630942., 637620., 645576., 652272., 660282., 666996., 675060., 681792.,
      645846., 652740., 660912., 667824., 676050., 682980., 691260., 698208.,
      650814., 657780., 666024., 673008., 681306., 688308., 696660., 703680.,
      655782., 662820., 671136., 678192., 686562., 693636., 702060., 709152.,
      660750., 667860., 676248., 683376., 691818., 698964., 707460., 714624.,
      665718., 672900., 681360., 688560., 697074., 704292., 712860., 720096.,
      670686., 677940., 686472., 693744., 702330., 709620., 718260., 725568.,
      675654., 682980., 691584., 698928., 707586., 714948., 723660., 731040.,
      690558., 698100., 706920., 714480., 723354., 730932., 739860., 747456.,
      695526., 703140., 712032., 719664., 728610., 736260., 745260., 752928.,
      700494., 708180., 717144., 724848., 733866., 741588., 750660., 758400.,
      705462., 713220., 722256., 730032., 739122., 746916., 756060., 763872.,
      710430., 718260., 727368., 735216., 744378., 752244., 761460., 769344.,
      715398., 723300., 732480., 740400., 749634., 757572., 766860., 774816.,
      720366., 728340., 737592., 745584., 754890., 762900., 772260., 780288.,
      735270., 743460., 752928., 761136., 770658., 778884., 788460., 796704.,
      740238., 748500., 758040., 766320., 775914., 784212., 793860., 802176.,
      745206., 753540., 763152., 771504., 781170., 789540., 799260., 807648.,
      750174., 758580., 768264., 776688., 786426., 794868., 804660., 813120.,
      755142., 763620., 773376., 781872., 791682., 800196., 810060., 818592.,
      760110., 768660., 778488., 787056., 796938., 805524., 815460., 824064.,
      765078., 773700., 783600., 792240., 802194., 810852., 820860., 829536.,
      779982., 788820., 798936., 807792., 817962., 826836., 837060., 845952.,
      784950., 793860., 804048., 812976., 823218., 832164., 842460., 851424.,
      789918., 798900., 809160., 818160., 828474., 837492., 847860., 856896.,
      794886., 803940., 814272., 823344., 833730., 842820., 853260., 862368.,
      799854., 808980., 819384., 828528., 838986., 848148., 858660., 867840.,
      804822., 814020., 824496., 833712., 844242., 853476., 864060., 873312.,
      809790., 819060., 829608., 838896., 849498., 858804., 869460., 878784.,
      824694., 834180., 844944., 854448., 865266., 874788., 885660., 895200.,
      829662., 839220., 850056., 859632., 870522., 880116., 891060., 900672.,
      834630., 844260., 855168., 864816., 875778., 885444., 896460., 906144.,
      839598., 849300., 860280., 870000., 881034., 890772., 901860., 911616.,
      844566., 854340., 865392., 875184., 886290., 896100., 907260., 917088.,
      849534., 859380., 870504., 880368., 891546., 901428., 912660., 922560.,
      854502., 864420., 875616., 885552., 896802., 906756., 918060., 928032.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4087614.,  4105644.,  4123674.,  4141704.,  4180936.,  4199056.,
      4217176.,  4235296.,  4274978.,  4293188.,  4311398.,  4329608.,
      4369740.,  4388040.,  4406340.,  4424640.,  4726685.,  4747930.,
      4769175.,  4790420.,  4836414.,  4857764.,  4879114.,  4900464.,
      4946983.,  4968438.,  4989893.,  5011348.,  5058392.,  5079952.,
      5101512.,  5123072.,  5537288.,  5561808.,  5586328.,  5610848.,
      5663936.,  5688576.,  5713216.,  5737856.,  5791544.,  5816304.,
      5841064.,  5865824.,  5920112.,  5944992.,  5969872.,  5994752.,
      6391487.,  6419342.,  6447197.,  6475052.,  6535566.,  6563556.,
      6591546.,  6619536.,  6680725.,  6708850.,  6736975.,  6765100.,
      6826964.,  6855224.,  6883484.,  6911744.,  5620328.,  5645328.,
      5670328.,  5695328.,  5749024.,  5774144.,  5799264.,  5824384.,
      5878680.,  5903920.,  5929160.,  5954400.,  6009296.,  6034656.,
      6060016.,  6085376.,  4887877.,  4909962.,  4932047.,  4954132.,
      5001190.,  5023380.,  5045570.,  5067760.,  5115343.,  5137638.,
      5159933.,  5182228.,  5230336.,  5252736.,  5275136.,  5297536.,
      4195094.,  4214204.,  4233314.,  4252424.,  4293024.,  4312224.,
      4331424.,  4350624.,  4391674.,  4410964.,  4430254.,  4449544.,
      4491044.,  4510424.,  4529804.,  4549184.,  5358108.,  5381688.,
      5405268.,  5428848.,  5478184.,  5501872.,  5525560.,  5549248.,
      5599124.,  5622920.,  5646716.,  5670512.,  5720928.,  5744832.,
      5768736.,  5792640.,  6274946.,  6302708.,  6330470.,  6358232.,
      6416144.,  6444032.,  6471920.,  6499808.,  6558350.,  6586364.,
      6614378.,  6642392.,  6701564.,  6729704.,  6757844.,  6785984.,
      7370768.,  7402784.,  7434800.,  7466816.,  7533600.,  7565760.,
      7597920.,  7630080.,  7697584.,  7729888.,  7762192.,  7794496.,
      7862720.,  7895168.,  7927616.,  7960064.,  8517446.,  8553788.,
      8590130.,  8626472.,  8702424.,  8738928.,  8775432.,  8811936.,
      8888698.,  8925364.,  8962030.,  8998696.,  9076268.,  9113096.,
      9149924.,  9186752.,  7590736.,  7623328.,  7655920.,  7688512.,
      7756128.,  7788864.,  7821600.,  7854336.,  7922672.,  7955552.,
      7988432.,  8021312.,  8090368.,  8123392.,  8156416.,  8189440.,
      6716338.,  6745108.,  6773878.,  6802648.,  6862144.,  6891040.,
      6919936.,  6948832.,  7008958.,  7037980.,  7067002.,  7096024.,
      7156780.,  7185928.,  7215076.,  7244224.,  5895404.,  5920280.,
      5945156.,  5970032.,  6021624.,  6046608.,  6071592.,  6096576.,
      6148708.,  6173800.,  6198892.,  6223984.,  6276656.,  6301856.,
      6327056.,  6352256.,  6626786.,  6654516.,  6682246.,  6709976.,
      6769008.,  6796864.,  6824720.,  6852576.,  6912238.,  6940220.,
      6968202.,  6996184.,  7056476.,  7084584.,  7112692.,  7140800.,
      7746955.,  7779430.,  7811905.,  7844380.,  7913478.,  7946100.,
      7978722.,  8011344.,  8081177.,  8113946.,  8146715.,  8179484.,
      8250052.,  8282968.,  8315884.,  8348800.,  9060344.,  9097648.,
      9134952.,  9172256.,  9251680.,  9289152.,  9326624.,  9364096.,
      9444360.,  9482000.,  9519640.,  9557280.,  9638384.,  9676192.,
      9714000.,  9751808.,  10438633., 10480850., 10523067., 10565284.,
      10655294., 10697700., 10740106., 10782512., 10873467., 10916062.,
      10958657., 11001252., 11093152., 11135936., 11178720., 11221504.,
      9296920.,  9334384.,  9371848.,  9409312.,  9489280.,  9526912.,
      9564544.,  9602176.,  9682984.,  9720784.,  9758584.,  9796384.,
      9878032.,  9916000.,  9953968.,  9991936.,  8222531.,  8255158.,
      8287785.,  8320412.,  8390590.,  8423364.,  8456138.,  8488912.,
      8559825.,  8592746.,  8625667.,  8658588.,  8730236.,  8763304.,
      8796372.,  8829440.,  7214762.,  7242980.,  7271198.,  7299416.,
      7360056.,  7388400.,  7416744.,  7445088.,  7506358.,  7534828.,
      7563298.,  7591768.,  7653668.,  7682264.,  7710860.,  7739456.,
      7966736.,  7998240.,  8029744.,  8061248.,  8128032.,  8159680.,
      8191328.,  8222976.,  8290480.,  8322272.,  8354064.,  8385856.,
      8454080.,  8486016.,  8517952.,  8549888.,  9355896.,  9392816.,
      9429736.,  9466656.,  9544672.,  9581760.,  9618848.,  9655936.,
      9734792.,  9772048.,  9809304.,  9846560.,  9926256.,  9963680.,
      10001104., 10038528., 10949056., 10991488., 11033920., 11076352.,
      11165824., 11208448., 11251072., 11293696., 11384128., 11426944.,
      11469760., 11512576., 11603968., 11646976., 11689984., 11732992.,
      12617704., 12665744., 12713784., 12761824., 12862976., 12911232.,
      12959488., 13007744., 13109976., 13158448., 13206920., 13255392.,
      13358704., 13407392., 13456080., 13504768., 11043520., 11086208.,
      11128896., 11171584., 11261312., 11304192., 11347072., 11389952.,
      11480640., 11523712., 11566784., 11609856., 11701504., 11744768.,
      11788032., 11831296., 9544888.,  9582128.,  9619368.,  9656608.,
      9735200.,  9772608.,  9810016.,  9847424.,  9926856.,  9964432.,
      10002008., 10039584., 10119856., 10157600., 10195344., 10233088.,
      8291280.,  8323488.,  8355696.,  8387904.,  8455648.,  8488000.,
      8520352.,  8552704.,  8621168.,  8653664.,  8686160.,  8718656.,
      8787840.,  8820480.,  8853120.,  8885760.,  7345978.,  7375172.,
      7404366.,  7433560.,  7494344.,  7523664.,  7552984.,  7582304.,
      7643718.,  7673164.,  7702610.,  7732056.,  7794100.,  7823672.,
      7853244.,  7882816.,  8626951.,  8661134.,  8695317.,  8729500.,
      8800642.,  8834972.,  8869302.,  8903632.,  8975509.,  9009986.,
      9044463.,  9078940.,  9151552.,  9186176.,  9220800.,  9255424.,
      9872152.,  9911408.,  9950664.,  9989920.,  10071680., 10111104.,
      10150528., 10189952., 10272552., 10312144., 10351736., 10391328.,
      10474768., 10514528., 10554288., 10594048., 11067437., 11111850.,
      11156263., 11200676., 11292802., 11337404., 11382006., 11426608.,
      11519679., 11564470., 11609261., 11654052., 11748068., 11793048.,
      11838028., 11883008., 9773368.,  9812784.,  9852200.,  9891616.,
      9973408.,  10012992., 10052576., 10092160., 10174792., 10214544.,
      10254296., 10294048., 10377520., 10417440., 10457360., 10497280.,
      8550335.,  8584670.,  8619005.,  8653340.,  8725050.,  8759532.,
      8794014.,  8828496.,  8900941.,  8935570.,  8970199.,  9004828.,
      9078008.,  9112784.,  9147560.,  9182336.,  7475458.,  7505140.,
      7534822.,  7564504.,  7626384.,  7656192.,  7686000.,  7715808.,
      7778318.,  7808252.,  7838186.,  7868120.,  7931260.,  7961320.,
      7991380.,  8021440.,  6231292.,  6257528.,  6283764.,  6310000.,
      6363656.,  6390000.,  6416344.,  6442688.,  6496884.,  6523336.,
      6549788.,  6576240.,  6630976.,  6657536.,  6684096.,  6710656.,
      7414066.,  7444756.,  7475446.,  7506136.,  7569088.,  7599904.,
      7630720.,  7661536.,  7725118.,  7756060.,  7787002.,  7817944.,
      7882156.,  7913224.,  7944292.,  7975360.,  8551568.,  8586784.,
      8622000.,  8657216.,  8729248.,  8764608.,  8799968.,  8835328.,
      8908080.,  8943584.,  8979088.,  9014592.,  9088064.,  9123712.,
      9159360.,  9195008.,  9642646.,  9682460.,  9722274.,  9762088.,
      9842984.,  9882960.,  9922936.,  9962912.,  10044618., 10084756.,
      10124894., 10165032., 10247548., 10287848., 10328148., 10368448.,
      8625104.,  8660384.,  8695664.,  8730944.,  8802784.,  8838208.,
      8873632.,  8909056.,  8981616.,  9017184.,  9052752.,  9088320.,
      9161600.,  9197312.,  9233024.,  9268736.,  7672674.,  7703348.,
      7734022.,  7764696.,  7827696.,  7858496.,  7889296.,  7920096.,
      7983726.,  8014652.,  8045578.,  8076504.,  8140764.,  8171816.,
      8202868.,  8233920.,  6770124.,  6796632.,  6823140.,  6849648.,
      6904024.,  6930640.,  6957256.,  6983872.,  7038788.,  7065512.,
      7092236.,  7118960.,  7174416.,  7201248.,  7228080.,  7254912.,
      5817814.,  5840444.,  5863074.,  5885704.,  5931104.,  5953824.,
      5976544.,  5999264.,  6045114.,  6067924.,  6090734.,  6113544.,
      6159844.,  6182744.,  6205644.,  6228544.,  6843449.,  6869890.,
      6896331.,  6922772.,  6975706.,  7002252.,  7028798.,  7055344.,
      7108803.,  7135454.,  7162105.,  7188756.,  7242740.,  7269496.,
      7296252.,  7323008.,  7828520.,  7858832.,  7889144.,  7919456.,
      7979744.,  8010176.,  8040608.,  8071040.,  8131928.,  8162480.,
      8193032.,  8223584.,  8285072.,  8315744.,  8346416.,  8377088.,
      8772067.,  8806310.,  8840553.,  8874796.,  8942258.,  8976636.,
      9011014.,  9045392.,  9113529.,  9148042.,  9182555.,  9217068.,
      9285880.,  9320528.,  9355176.,  9389824.,  7915656.,  7945936.,
      7976216.,  8006496.,  8066368.,  8096768.,  8127168.,  8157568.,
      8218040.,  8248560.,  8279080.,  8309600.,  8370672.,  8401312.,
      8431952.,  8462592.,  7117025.,  7143282.,  7169539.,  7195796.,
      7248258.,  7274620.,  7300982.,  7327344.,  7380331.,  7406798.,
      7433265.,  7459732.,  7513244.,  7539816.,  7566388.,  7592960.,
      6268590.,  6291276.,  6313962.,  6336648.,  6381880.,  6404656.,
      6427432.,  6450208.,  6495890.,  6518756.,  6541622.,  6564488.,
      6610620.,  6633576.,  6656532.,  6679488.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1107246., 1112844., 1118442., 1124040., 1132176., 1137792., 1143408.,
      1149024., 1157250., 1162884., 1168518., 1174152., 1182468., 1188120.,
      1193772., 1199424., 1117110., 1122780., 1128450., 1134120., 1142328.,
      1148016., 1153704., 1159392., 1167690., 1173396., 1179102., 1184808.,
      1193196., 1198920., 1204644., 1210368., 1126974., 1132716., 1138458.,
      1144200., 1152480., 1158240., 1164000., 1169760., 1178130., 1183908.,
      1189686., 1195464., 1203924., 1209720., 1215516., 1221312., 1136838.,
      1142652., 1148466., 1154280., 1162632., 1168464., 1174296., 1180128.,
      1188570., 1194420., 1200270., 1206120., 1214652., 1220520., 1226388.,
      1232256., 1146702., 1152588., 1158474., 1164360., 1172784., 1178688.,
      1184592., 1190496., 1199010., 1204932., 1210854., 1216776., 1225380.,
      1231320., 1237260., 1243200., 1156566., 1162524., 1168482., 1174440.,
      1182936., 1188912., 1194888., 1200864., 1209450., 1215444., 1221438.,
      1227432., 1236108., 1242120., 1248132., 1254144., 1166430., 1172460.,
      1178490., 1184520., 1193088., 1199136., 1205184., 1211232., 1219890.,
      1225956., 1232022., 1238088., 1246836., 1252920., 1259004., 1265088.,
      1196022., 1202268., 1208514., 1214760., 1223544., 1229808., 1236072.,
      1242336., 1251210., 1257492., 1263774., 1270056., 1279020., 1285320.,
      1291620., 1297920., 1205886., 1212204., 1218522., 1224840., 1233696.,
      1240032., 1246368., 1252704., 1261650., 1268004., 1274358., 1280712.,
      1289748., 1296120., 1302492., 1308864., 1215750., 1222140., 1228530.,
      1234920., 1243848., 1250256., 1256664., 1263072., 1272090., 1278516.,
      1284942., 1291368., 1300476., 1306920., 1313364., 1319808., 1225614.,
      1232076., 1238538., 1245000., 1254000., 1260480., 1266960., 1273440.,
      1282530., 1289028., 1295526., 1302024., 1311204., 1317720., 1324236.,
      1330752., 1235478., 1242012., 1248546., 1255080., 1264152., 1270704.,
      1277256., 1283808., 1292970., 1299540., 1306110., 1312680., 1321932.,
      1328520., 1335108., 1341696., 1245342., 1251948., 1258554., 1265160.,
      1274304., 1280928., 1287552., 1294176., 1303410., 1310052., 1316694.,
      1323336., 1332660., 1339320., 1345980., 1352640., 1255206., 1261884.,
      1268562., 1275240., 1284456., 1291152., 1297848., 1304544., 1313850.,
      1320564., 1327278., 1333992., 1343388., 1350120., 1356852., 1363584.,
      1284798., 1291692., 1298586., 1305480., 1314912., 1321824., 1328736.,
      1335648., 1345170., 1352100., 1359030., 1365960., 1375572., 1382520.,
      1389468., 1396416., 1294662., 1301628., 1308594., 1315560., 1325064.,
      1332048., 1339032., 1346016., 1355610., 1362612., 1369614., 1376616.,
      1386300., 1393320., 1400340., 1407360., 1304526., 1311564., 1318602.,
      1325640., 1335216., 1342272., 1349328., 1356384., 1366050., 1373124.,
      1380198., 1387272., 1397028., 1404120., 1411212., 1418304., 1314390.,
      1321500., 1328610., 1335720., 1345368., 1352496., 1359624., 1366752.,
      1376490., 1383636., 1390782., 1397928., 1407756., 1414920., 1422084.,
      1429248., 1324254., 1331436., 1338618., 1345800., 1355520., 1362720.,
      1369920., 1377120., 1386930., 1394148., 1401366., 1408584., 1418484.,
      1425720., 1432956., 1440192., 1334118., 1341372., 1348626., 1355880.,
      1365672., 1372944., 1380216., 1387488., 1397370., 1404660., 1411950.,
      1419240., 1429212., 1436520., 1443828., 1451136., 1343982., 1351308.,
      1358634., 1365960., 1375824., 1383168., 1390512., 1397856., 1407810.,
      1415172., 1422534., 1429896., 1439940., 1447320., 1454700., 1462080.,
      1373574., 1381116., 1388658., 1396200., 1406280., 1413840., 1421400.,
      1428960., 1439130., 1446708., 1454286., 1461864., 1472124., 1479720.,
      1487316., 1494912., 1383438., 1391052., 1398666., 1406280., 1416432.,
      1424064., 1431696., 1439328., 1449570., 1457220., 1464870., 1472520.,
      1482852., 1490520., 1498188., 1505856., 1393302., 1400988., 1408674.,
      1416360., 1426584., 1434288., 1441992., 1449696., 1460010., 1467732.,
      1475454., 1483176., 1493580., 1501320., 1509060., 1516800., 1403166.,
      1410924., 1418682., 1426440., 1436736., 1444512., 1452288., 1460064.,
      1470450., 1478244., 1486038., 1493832., 1504308., 1512120., 1519932.,
      1527744., 1413030., 1420860., 1428690., 1436520., 1446888., 1454736.,
      1462584., 1470432., 1480890., 1488756., 1496622., 1504488., 1515036.,
      1522920., 1530804., 1538688., 1422894., 1430796., 1438698., 1446600.,
      1457040., 1464960., 1472880., 1480800., 1491330., 1499268., 1507206.,
      1515144., 1525764., 1533720., 1541676., 1549632., 1432758., 1440732.,
      1448706., 1456680., 1467192., 1475184., 1483176., 1491168., 1501770.,
      1509780., 1517790., 1525800., 1536492., 1544520., 1552548., 1560576.,
      1462350., 1470540., 1478730., 1486920., 1497648., 1505856., 1514064.,
      1522272., 1533090., 1541316., 1549542., 1557768., 1568676., 1576920.,
      1585164., 1593408., 1472214., 1480476., 1488738., 1497000., 1507800.,
      1516080., 1524360., 1532640., 1543530., 1551828., 1560126., 1568424.,
      1579404., 1587720., 1596036., 1604352., 1482078., 1490412., 1498746.,
      1507080., 1517952., 1526304., 1534656., 1543008., 1553970., 1562340.,
      1570710., 1579080., 1590132., 1598520., 1606908., 1615296., 1491942.,
      1500348., 1508754., 1517160., 1528104., 1536528., 1544952., 1553376.,
      1564410., 1572852., 1581294., 1589736., 1600860., 1609320., 1617780.,
      1626240., 1501806., 1510284., 1518762., 1527240., 1538256., 1546752.,
      1555248., 1563744., 1574850., 1583364., 1591878., 1600392., 1611588.,
      1620120., 1628652., 1637184., 1511670., 1520220., 1528770., 1537320.,
      1548408., 1556976., 1565544., 1574112., 1585290., 1593876., 1602462.,
      1611048., 1622316., 1630920., 1639524., 1648128., 1521534., 1530156.,
      1538778., 1547400., 1558560., 1567200., 1575840., 1584480., 1595730.,
      1604388., 1613046., 1621704., 1633044., 1641720., 1650396., 1659072.,
      1551126., 1559964., 1568802., 1577640., 1589016., 1597872., 1606728.,
      1615584., 1627050., 1635924., 1644798., 1653672., 1665228., 1674120.,
      1683012., 1691904., 1560990., 1569900., 1578810., 1587720., 1599168.,
      1608096., 1617024., 1625952., 1637490., 1646436., 1655382., 1664328.,
      1675956., 1684920., 1693884., 1702848., 1570854., 1579836., 1588818.,
      1597800., 1609320., 1618320., 1627320., 1636320., 1647930., 1656948.,
      1665966., 1674984., 1686684., 1695720., 1704756., 1713792., 1580718.,
      1589772., 1598826., 1607880., 1619472., 1628544., 1637616., 1646688.,
      1658370., 1667460., 1676550., 1685640., 1697412., 1706520., 1715628.,
      1724736., 1590582., 1599708., 1608834., 1617960., 1629624., 1638768.,
      1647912., 1657056., 1668810., 1677972., 1687134., 1696296., 1708140.,
      1717320., 1726500., 1735680., 1600446., 1609644., 1618842., 1628040.,
      1639776., 1648992., 1658208., 1667424., 1679250., 1688484., 1697718.,
      1706952., 1718868., 1728120., 1737372., 1746624., 1610310., 1619580.,
      1628850., 1638120., 1649928., 1659216., 1668504., 1677792., 1689690.,
      1698996., 1708302., 1717608., 1729596., 1738920., 1748244., 1757568.,
      1639902., 1649388., 1658874., 1668360., 1680384., 1689888., 1699392.,
      1708896., 1721010., 1730532., 1740054., 1749576., 1761780., 1771320.,
      1780860., 1790400., 1649766., 1659324., 1668882., 1678440., 1690536.,
      1700112., 1709688., 1719264., 1731450., 1741044., 1750638., 1760232.,
      1772508., 1782120., 1791732., 1801344., 1659630., 1669260., 1678890.,
      1688520., 1700688., 1710336., 1719984., 1729632., 1741890., 1751556.,
      1761222., 1770888., 1783236., 1792920., 1802604., 1812288., 1669494.,
      1679196., 1688898., 1698600., 1710840., 1720560., 1730280., 1740000.,
      1752330., 1762068., 1771806., 1781544., 1793964., 1803720., 1813476.,
      1823232., 1679358., 1689132., 1698906., 1708680., 1720992., 1730784.,
      1740576., 1750368., 1762770., 1772580., 1782390., 1792200., 1804692.,
      1814520., 1824348., 1834176., 1689222., 1699068., 1708914., 1718760.,
      1731144., 1741008., 1750872., 1760736., 1773210., 1783092., 1792974.,
      1802856., 1815420., 1825320., 1835220., 1845120., 1699086., 1709004.,
      1718922., 1728840., 1741296., 1751232., 1761168., 1771104., 1783650.,
      1793604., 1803558., 1813512., 1826148., 1836120., 1846092., 1856064.};
  const std::array<int, 4> in_shape = {{3, 8, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1965460., 2248340., 2531700., 2815525., 2535750., 2255540., 1974910.,
      2387742., 2730648., 3073950., 3417630., 3077190., 2736408., 2395302.,
      2814854., 3218236., 3621870., 4025735., 3623760., 3221596., 2819264.,
      3244696., 3708704., 4172760., 4636840., 4172760., 3708704., 3244696.,
      2819264., 3221596., 3623760., 4025735., 3621870., 3218236., 2814854.,
      2395302., 2736408., 3077190., 3417630., 3073950., 2730648., 2387742.,
      1974910., 2255540., 2535750., 2815525., 2531700., 2248340., 1965460.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      36760., 37060., 37360., 37660., 37960., 38260., 38560., 39760., 40060.,
      40360., 40660., 40960., 41260., 41560., 42760., 43060., 43360., 43660.,
      43960., 44260., 44560., 45760., 46060., 46360., 46660., 46960., 47260.,
      47560., 48760., 49060., 49360., 49660., 49960., 50260., 50560., 51760.,
      52060., 52360., 52660., 52960., 53260., 53560., 54760., 55060., 55360.,
      55660., 55960., 56260., 56560.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3920000., 3930920., 4484140., 4496680., 5049225., 5063400., 5615225.,
      5631050., 5057190., 5071500., 4498300., 4511080., 3938585., 3949820.,
      4761750., 4775484., 5445528., 5461296., 6130080., 6147900., 6815370.,
      6835260., 6136398., 6154380., 5456760., 5472816., 4776492., 4790604.,
      5612950., 5629708., 6417236., 6436472., 7222005., 7243740., 8027215.,
      8051470., 7225596., 7247520., 6423620., 6443192., 5621329., 5638528.,
      6469400., 6489392., 7394464., 7417408., 8319600., 8345520., 9244760.,
      9273680., 8319384., 8345520., 7394080., 7417408., 6468896., 6489392.,
      5620300., 5638528., 6422276., 6443192., 7223895., 7247520., 8025115.,
      8051470., 7219926., 7243740., 6415220., 6436472., 5611039., 5629708.,
      4774350., 4790604., 5454168., 5472816., 6133320., 6154380., 6811770.,
      6835260., 6126678., 6147900., 5442360., 5461296., 4758852., 4775484.,
      3935750., 3949820., 4494940., 4511080., 5053275., 5071500., 5610725.,
      5631050., 5045040., 5063400., 4480300., 4496680., 3916535., 3930920.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      71420.,  73520.,  71996.,  74120.,  72572.,  74720.,  73148.,  75320.,
      73724.,  75920.,  74300.,  76520.,  74876.,  77120.,  77180.,  79520.,
      77756.,  80120.,  78332.,  80720.,  78908.,  81320.,  79484.,  81920.,
      80060.,  82520.,  80636.,  83120.,  82940.,  85520.,  83516.,  86120.,
      84092.,  86720.,  84668.,  87320.,  85244.,  87920.,  85820.,  88520.,
      86396.,  89120.,  88700.,  91520.,  89276.,  92120.,  89852.,  92720.,
      90428.,  93320.,  91004.,  93920.,  91580.,  94520.,  92156.,  95120.,
      94460.,  97520.,  95036.,  98120.,  95612.,  98720.,  96188.,  99320.,
      96764.,  99920.,  97340.,  100520., 97916.,  101120., 100220., 103520.,
      100796., 104120., 101372., 104720., 101948., 105320., 102524., 105920.,
      103100., 106520., 103676., 107120., 105980., 109520., 106556., 110120.,
      107132., 110720., 107708., 111320., 108284., 111920., 108860., 112520.,
      109436., 113120.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3207256., 3218176., 3229096., 3240016., 3670364., 3682904., 3695444.,
      3707984., 4131251., 4145426., 4159601., 4173776., 4589857., 4605682.,
      4621507., 4637332., 4159846., 4174156., 4188466., 4202776., 3732748.,
      3745528., 3758308., 3771088., 3256911., 3268146., 3279381., 3290616.,
      4003206., 4016940., 4030674., 4044408., 4578200., 4593968., 4609736.,
      4625504., 5150116., 5167936., 5185756., 5203576., 5718882., 5738772.,
      5758662., 5778552., 5175902., 5193884., 5211866., 5229848., 4636728.,
      4652784., 4668840., 4684896., 4044600., 4058712., 4072824., 4086936.,
      4782006., 4798764., 4815522., 4832280., 5465476., 5484712., 5503948.,
      5523184., 6144771., 6166506., 6188241., 6209976., 6819807., 6844062.,
      6868317., 6892572., 6165588., 6187512., 6209436., 6231360., 5516308.,
      5535880., 5555452., 5575024., 4810099., 4827298., 4844497., 4861696.,
      5535256., 5555248., 5575240., 5595232., 6322592., 6345536., 6368480.,
      6391424., 7104416., 7130336., 7156256., 7182176., 7880632., 7909552.,
      7938472., 7967392., 7118104., 7144240., 7170376., 7196512., 6361888.,
      6385216., 6408544., 6431872., 5545008., 5565504., 5586000., 5606496.,
      4896612., 4914840., 4933068., 4951296., 5594708., 5615624., 5636540.,
      5657456., 6287461., 6311086., 6334711., 6358336., 6974787., 7001142.,
      7027497., 7053852., 6308006., 6331820., 6355634., 6379448., 5647332.,
      5668584., 5689836., 5711088., 4920657., 4939326., 4957995., 4976664.,
      4336158., 4352412., 4368666., 4384920., 4957144., 4975792., 4994440.,
      5013088., 5573196., 5594256., 5615316., 5636376., 6184242., 6207732.,
      6231222., 6254712., 5602758., 5623980., 5645202., 5666424., 5026936.,
      5045872., 5064808., 5083744., 4379536., 4396168., 4412800., 4429432.,
      3862294., 3876364., 3890434., 3904504., 4419500., 4435640., 4451780.,
      4467920., 4972421., 4990646., 5008871., 5027096., 5520997., 5541322.,
      5561647., 5581972., 5013160., 5031520., 5049880., 5068240., 4510300.,
      4526680., 4543060., 4559440., 3930045., 3944430., 3958815., 3973200.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      140740., 142840., 144940., 147040., 141868., 143992., 146116., 148240.,
      142996., 145144., 147292., 149440., 144124., 146296., 148468., 150640.,
      145252., 147448., 149644., 151840., 146380., 148600., 150820., 153040.,
      147508., 149752., 151996., 154240., 152020., 154360., 156700., 159040.,
      153148., 155512., 157876., 160240., 154276., 156664., 159052., 161440.,
      155404., 157816., 160228., 162640., 156532., 158968., 161404., 163840.,
      157660., 160120., 162580., 165040., 158788., 161272., 163756., 166240.,
      163300., 165880., 168460., 171040., 164428., 167032., 169636., 172240.,
      165556., 168184., 170812., 173440., 166684., 169336., 171988., 174640.,
      167812., 170488., 173164., 175840., 168940., 171640., 174340., 177040.,
      170068., 172792., 175516., 178240., 174580., 177400., 180220., 183040.,
      175708., 178552., 181396., 184240., 176836., 179704., 182572., 185440.,
      177964., 180856., 183748., 186640., 179092., 182008., 184924., 187840.,
      180220., 183160., 186100., 189040., 181348., 184312., 187276., 190240.,
      185860., 188920., 191980., 195040., 186988., 190072., 193156., 196240.,
      188116., 191224., 194332., 197440., 189244., 192376., 195508., 198640.,
      190372., 193528., 196684., 199840., 191500., 194680., 197860., 201040.,
      192628., 195832., 199036., 202240., 197140., 200440., 203740., 207040.,
      198268., 201592., 204916., 208240., 199396., 202744., 206092., 209440.,
      200524., 203896., 207268., 210640., 201652., 205048., 208444., 211840.,
      202780., 206200., 209620., 213040., 203908., 207352., 210796., 214240.,
      208420., 211960., 215500., 219040., 209548., 213112., 216676., 220240.,
      210676., 214264., 217852., 221440., 211804., 215416., 219028., 222640.,
      212932., 216568., 220204., 223840., 214060., 217720., 221380., 225040.,
      215188., 218872., 222556., 226240.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1618439., 1645136., 1864920., 1895504., 2095657., 2129872., 2327230.,
      2365076., 2132849., 2167064., 1938776., 1969360., 1693615., 1720312.,
      2102714., 2134136., 2420688., 2456672., 2728214., 2768504., 3036740.,
      3081336., 2777014., 2817304., 2517456., 2553440., 2201562., 2232984.,
      2642149., 2678296., 3038536., 3079920., 3429531., 3475896., 3821450.,
      3872796., 3487779., 3534144., 3154376., 3195760., 2759629., 2795776.,
      3228344., 3269216., 3708864., 3755648., 4188808., 4241248., 4669360.,
      4727456., 4188808., 4241248., 3708864., 3755648., 3228344., 3269216.,
      2759629., 2795776., 3154376., 3195760., 3487779., 3534144., 3821450.,
      3872796., 3429531., 3475896., 3038536., 3079920., 2642149., 2678296.,
      2201562., 2232984., 2517456., 2553440., 2777014., 2817304., 3036740.,
      3081336., 2728214., 2768504., 2420688., 2456672., 2102714., 2134136.,
      1693615., 1720312., 1938776., 1969360., 2132849., 2167064., 2327230.,
      2365076., 2095657., 2129872., 1864920., 1895504., 1618439., 1645136.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      142264., 147040., 143416., 148240., 144568., 149440., 145720., 150640.,
      146872., 151840., 148024., 153040., 149176., 154240., 153784., 159040.,
      154936., 160240., 156088., 161440., 157240., 162640., 158392., 163840.,
      159544., 165040., 160696., 166240., 165304., 171040., 166456., 172240.,
      167608., 173440., 168760., 174640., 169912., 175840., 171064., 177040.,
      172216., 178240., 176824., 183040., 177976., 184240., 179128., 185440.,
      180280., 186640., 181432., 187840., 182584., 189040., 183736., 190240.,
      188344., 195040., 189496., 196240., 190648., 197440., 191800., 198640.,
      192952., 199840., 194104., 201040., 195256., 202240., 199864., 207040.,
      201016., 208240., 202168., 209440., 203320., 210640., 204472., 211840.,
      205624., 213040., 206776., 214240., 211384., 219040., 212536., 220240.,
      213688., 221440., 214840., 222640., 215992., 223840., 217144., 225040.,
      218296., 226240.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6386983.,  6408718.,  6458192.,  6480032.,  7309360.,  7334320.,
      7390888.,  7415968.,  8227355.,  8255570.,  8319202.,  8347552.,
      9140848.,  9172348.,  9243014.,  9274664.,  8284573.,  8313058.,
      8376932.,  8405552.,  7434064.,  7459504.,  7516616.,  7542176.,
      6486529.,  6508894.,  6558762.,  6581232.,  7973542.,  8000884.,
      8061348.,  8088816.,  9118976.,  9150368.,  9219472.,  9251008.,
      10258326., 10293804., 10371512., 10407152., 11391448., 11431048.,
      11517324., 11557104., 10310034., 10345836., 10423732., 10459696.,
      9236160.,  9268128.,  9337680.,  9369792.,  8056818.,  8084916.,
      8145648.,  8173872.,  9526641.,  9560010.,  9631044.,  9664560.,
      10888432., 10926736., 11007896., 11046368., 12241957., 12285238.,
      12376482., 12419952., 13587048., 13635348., 13736634., 13785144.,
      12283835., 12327494., 12418872., 12462720., 10990416., 11029392.,
      11110904., 11150048., 9583567.,  9617818.,  9688994.,  9723392.,
      11029480., 11069296., 11150480., 11190464., 12598528., 12644224.,
      12736960., 12782848., 14156648., 14208272., 14312512., 14364352.,
      15703648., 15761248., 15876944., 15934784., 14184376., 14236432.,
      14340752., 14393024., 12677632., 12724096., 12817088., 12863744.,
      11049976., 11090800., 11172000., 11212992., 9758149.,  9794458.,
      9866136.,  9902592.,  11149520., 11191184., 11273080., 11314912.,
      12530289., 12577350., 12669422., 12716672., 13900288., 13952788.,
      14054994., 14107704., 12571623., 12619062., 12711268., 12758896.,
      11255088., 11297424., 11379672., 11422176., 9806979.,  9844170.,
      9915990.,  9953328.,  8642358.,  8674740.,  8737332.,  8769840.,
      9880192.,  9917344.,  9988880.,  10026176., 11108230., 11150188.,
      11230632., 11272752., 12326328., 12373128., 12462444., 12509424.,
      11167490., 11209772., 11290404., 11332848., 10019904., 10057632.,
      10129616., 10167488., 8729602.,  8762740.,  8825600.,  8858864.,
      7698907.,  7726942.,  7780868.,  7809008.,  8809744.,  8841904.,
      8903560.,  8935840.,  9912071.,  9948386.,  10017742., 10054192.,
      11005768., 11046268., 11123294., 11163944., 9993577.,  10030162.,
      10099760., 10136480., 8991280.,  9023920.,  9086120.,  9118880.,
      7834645.,  7863310.,  7917630.,  7946400.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      280352., 284528., 289880., 294080., 282608., 286832., 292232., 296480.,
      284864., 289136., 294584., 298880., 287120., 291440., 296936., 301280.,
      289376., 293744., 299288., 303680., 291632., 296048., 301640., 306080.,
      293888., 298352., 303992., 308480., 302912., 307568., 313400., 318080.,
      305168., 309872., 315752., 320480., 307424., 312176., 318104., 322880.,
      309680., 314480., 320456., 325280., 311936., 316784., 322808., 327680.,
      314192., 319088., 325160., 330080., 316448., 321392., 327512., 332480.,
      325472., 330608., 336920., 342080., 327728., 332912., 339272., 344480.,
      329984., 335216., 341624., 346880., 332240., 337520., 343976., 349280.,
      334496., 339824., 346328., 351680., 336752., 342128., 348680., 354080.,
      339008., 344432., 351032., 356480., 348032., 353648., 360440., 366080.,
      350288., 355952., 362792., 368480., 352544., 358256., 365144., 370880.,
      354800., 360560., 367496., 373280., 357056., 362864., 369848., 375680.,
      359312., 365168., 372200., 378080., 361568., 367472., 374552., 380480.,
      370592., 376688., 383960., 390080., 372848., 378992., 386312., 392480.,
      375104., 381296., 388664., 394880., 377360., 383600., 391016., 397280.,
      379616., 385904., 393368., 399680., 381872., 388208., 395720., 402080.,
      384128., 390512., 398072., 404480., 393152., 399728., 407480., 414080.,
      395408., 402032., 409832., 416480., 397664., 404336., 412184., 418880.,
      399920., 406640., 414536., 421280., 402176., 408944., 416888., 423680.,
      404432., 411248., 419240., 426080., 406688., 413552., 421592., 428480.,
      415712., 422768., 431000., 438080., 417968., 425072., 433352., 440480.,
      420224., 427376., 435704., 442880., 422480., 429680., 438056., 445280.,
      424736., 431984., 440408., 447680., 426992., 434288., 442760., 450080.,
      429248., 436592., 445112., 452480.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4582759.,  4604494.,  4626229.,  4647964.,  4694352.,  4716192.,
      4738032.,  4759872.,  5222112.,  5247072.,  5272032.,  5296992.,
      5350232.,  5375312.,  5400392.,  5425472.,  6008831.,  6037046.,
      6065261.,  6093476.,  6153990.,  6182340.,  6210690.,  6239040.,
      6779348.,  6810848.,  6842348.,  6873848.,  6941546.,  6973196.,
      7004846.,  7036496.,  6147061.,  6175546.,  6204031.,  6232516.,
      6293756.,  6322376.,  6350996.,  6379616.,  5534528.,  5559968.,
      5585408.,  5610848.,  5665720.,  5691280.,  5716840.,  5742400.,
      4839077.,  4861442.,  4883807.,  4906172.,  4954254.,  4976724.,
      4999194.,  5021664.,  6537342.,  6564684.,  6592026.,  6619368.,
      6678524.,  6705992.,  6733460.,  6760928.,  7450464.,  7481856.,
      7513248.,  7544640.,  7612400.,  7643936.,  7675472.,  7707008.,
      8516758.,  8552236.,  8587714.,  8623192.,  8699960.,  8735600.,
      8771240.,  8806880.,  9562368.,  9601968.,  9641568.,  9681168.,
      9766836.,  9806616.,  9846396.,  9886176.,  8644938.,  8680740.,
      8716542.,  8752344.,  8829676.,  8865640.,  8901604.,  8937568.,
      7751840.,  7783808.,  7815776.,  7847744.,  7916848.,  7948960.,
      7981072.,  8013184.,  6770210.,  6798308.,  6826406.,  6854504.,
      6914976.,  6943200.,  6971424.,  6999648.,  8352905.,  8386274.,
      8419643.,  8453012.,  8523676.,  8557192.,  8590708.,  8624224.,
      9516096.,  9554400.,  9592704.,  9631008.,  9711848.,  9750320.,
      9788792.,  9827264.,  10837305., 10880586., 10923867., 10967148.,
      11058550., 11102020., 11145490., 11188960., 12132388., 12180688.,
      12228988., 12277288., 12379126., 12427636., 12476146., 12524656.,
      10946795., 10990454., 11034113., 11077772., 11169576., 11213424.,
      11257272., 11301120., 9791072.,  9830048.,  9869024.,  9908000.,
      9989896.,  10029040., 10068184., 10107328., 8542163.,  8576414.,
      8610665.,  8644916.,  8716518.,  8750916.,  8785314.,  8819712.,
      9995848.,  10035664., 10075480., 10115296., 10196208., 10236192.,
      10276176., 10316160., 11380608., 11426304., 11472000., 11517696.,
      11610176., 11656064., 11701952., 11747840., 12927272., 12978896.,
      13030520., 13082144., 13186560., 13238400., 13290240., 13342080.,
      14441408., 14499008., 14556608., 14614208., 14730416., 14788256.,
      14846096., 14903936., 13009432., 13061488., 13113544., 13165600.,
      13270256., 13322528., 13374800., 13427072., 11613824., 11660288.,
      11706752., 11753216., 11846464., 11893120., 11939776., 11986432.,
      10121336., 10162160., 10202984., 10243808., 10325280., 10366272.,
      10407264., 10448256., 8971189.,  9007498.,  9043807.,  9080116.,
      9152712.,  9189168.,  9225624.,  9262080.,  10231520., 10273184.,
      10314848., 10356512., 10439560., 10481392., 10523224., 10565056.,
      11666701., 11713762., 11760823., 11807884., 11901770., 11949020.,
      11996270., 12043520., 13072108., 13124608., 13177108., 13229608.,
      13334206., 13386916., 13439626., 13492336., 11804799., 11852238.,
      11899677., 11947116., 12041404., 12089032., 12136660., 12184288.,
      10571008., 10613344., 10655680., 10698016., 10782120., 10824624.,
      10867128., 10909632., 9227199.,  9264390.,  9301581.,  9338772.,
      9412306.,  9449644.,  9486982.,  9524320.,  8318958.,  8351340.,
      8383722.,  8416104.,  8481132.,  8513640.,  8546148.,  8578656.,
      9440224.,  9477376.,  9514528.,  9551680.,  9625712.,  9663008.,
      9700304.,  9737600.,  10749222., 10791180., 10833138., 10875096.,
      10958536., 11000656., 11042776., 11084896., 12031136., 12077936.,
      12124736., 12171536., 12264276., 12311256., 12358236., 12405216.,
      10862298., 10904580., 10946862., 10989144., 11072636., 11115080.,
      11157524., 11199968., 9723168.,  9760896.,  9798624.,  9836352.,
      9910704.,  9948576.,  9986448.,  10024320., 8459922.,  8493060.,
      8526198.,  8559336.,  8624144.,  8657408.,  8690672.,  8723936.,
      7628851.,  7656886.,  7684921.,  7712956.,  7768604.,  7796744.,
      7824884.,  7853024.,  8668288.,  8700448.,  8732608.,  8764768.,
      8828152.,  8860432.,  8892712.,  8924992.,  9909299.,  9945614.,
      9981929.,  10018244., 10089786., 10126236., 10162686., 10199136.,
      11126876., 11167376., 11207876., 11248376., 11327986., 11368636.,
      11409286., 11449936., 10076137., 10112722., 10149307., 10185892.,
      10257648., 10294368., 10331088., 10367808., 9051360.,  9084000.,
      9116640.,  9149280.,  9213272.,  9246032.,  9278792.,  9311552.,
      7888433.,  7917098.,  7945763.,  7974428.,  8030234.,  8059004.,
      8087774.,  8116544.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      556528., 560704., 564880., 569056., 575560., 579760., 583960., 588160.,
      560992., 565216., 569440., 573664., 580216., 584464., 588712., 592960.,
      565456., 569728., 574000., 578272., 584872., 589168., 593464., 597760.,
      569920., 574240., 578560., 582880., 589528., 593872., 598216., 602560.,
      574384., 578752., 583120., 587488., 594184., 598576., 602968., 607360.,
      578848., 583264., 587680., 592096., 598840., 603280., 607720., 612160.,
      583312., 587776., 592240., 596704., 603496., 607984., 612472., 616960.,
      601168., 605824., 610480., 615136., 622120., 626800., 631480., 636160.,
      605632., 610336., 615040., 619744., 626776., 631504., 636232., 640960.,
      610096., 614848., 619600., 624352., 631432., 636208., 640984., 645760.,
      614560., 619360., 624160., 628960., 636088., 640912., 645736., 650560.,
      619024., 623872., 628720., 633568., 640744., 645616., 650488., 655360.,
      623488., 628384., 633280., 638176., 645400., 650320., 655240., 660160.,
      627952., 632896., 637840., 642784., 650056., 655024., 659992., 664960.,
      645808., 650944., 656080., 661216., 668680., 673840., 679000., 684160.,
      650272., 655456., 660640., 665824., 673336., 678544., 683752., 688960.,
      654736., 659968., 665200., 670432., 677992., 683248., 688504., 693760.,
      659200., 664480., 669760., 675040., 682648., 687952., 693256., 698560.,
      663664., 668992., 674320., 679648., 687304., 692656., 698008., 703360.,
      668128., 673504., 678880., 684256., 691960., 697360., 702760., 708160.,
      672592., 678016., 683440., 688864., 696616., 702064., 707512., 712960.,
      690448., 696064., 701680., 707296., 715240., 720880., 726520., 732160.,
      694912., 700576., 706240., 711904., 719896., 725584., 731272., 736960.,
      699376., 705088., 710800., 716512., 724552., 730288., 736024., 741760.,
      703840., 709600., 715360., 721120., 729208., 734992., 740776., 746560.,
      708304., 714112., 719920., 725728., 733864., 739696., 745528., 751360.,
      712768., 718624., 724480., 730336., 738520., 744400., 750280., 756160.,
      717232., 723136., 729040., 734944., 743176., 749104., 755032., 760960.,
      735088., 741184., 747280., 753376., 761800., 767920., 774040., 780160.,
      739552., 745696., 751840., 757984., 766456., 772624., 778792., 784960.,
      744016., 750208., 756400., 762592., 771112., 777328., 783544., 789760.,
      748480., 754720., 760960., 767200., 775768., 782032., 788296., 794560.,
      752944., 759232., 765520., 771808., 780424., 786736., 793048., 799360.,
      757408., 763744., 770080., 776416., 785080., 791440., 797800., 804160.,
      761872., 768256., 774640., 781024., 789736., 796144., 802552., 808960.,
      779728., 786304., 792880., 799456., 808360., 814960., 821560., 828160.,
      784192., 790816., 797440., 804064., 813016., 819664., 826312., 832960.,
      788656., 795328., 802000., 808672., 817672., 824368., 831064., 837760.,
      793120., 799840., 806560., 813280., 822328., 829072., 835816., 842560.,
      797584., 804352., 811120., 817888., 826984., 833776., 840568., 847360.,
      802048., 808864., 815680., 822496., 831640., 838480., 845320., 852160.,
      806512., 813376., 820240., 827104., 836296., 843184., 850072., 856960.,
      824368., 831424., 838480., 845536., 854920., 862000., 869080., 876160.,
      828832., 835936., 843040., 850144., 859576., 866704., 873832., 880960.,
      833296., 840448., 847600., 854752., 864232., 871408., 878584., 885760.,
      837760., 844960., 852160., 859360., 868888., 876112., 883336., 890560.,
      842224., 849472., 856720., 863968., 873544., 880816., 888088., 895360.,
      846688., 853984., 861280., 868576., 878200., 885520., 892840., 900160.,
      851152., 858496., 865840., 873184., 882856., 890224., 897592., 904960.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1274309., 1299996., 1325893., 1352000., 1480664., 1510240., 1540056.,
      1570112., 1688555., 1722020., 1755755., 1789760., 1898766., 1936120.,
      1973774., 2011728., 1725963., 1759684., 1793675., 1827936., 1556440.,
      1586528., 1616856., 1647424., 1381221., 1407676., 1434341., 1461216.,
      1696230., 1727720., 1759462., 1791456., 1980880., 2017088., 2053584.,
      2090368., 2288250., 2329176., 2370426., 2412000., 2598596., 2644240.,
      2690244., 2736608., 2382330., 2423512., 2465018., 2506848., 2168784.,
      2205504., 2242512., 2279808., 1928550., 1960808., 1993318., 2026080.,
      2295015., 2331540., 2368359., 2405472., 2673096., 2714912., 2757064.,
      2799552., 3095145., 3142252., 3189737., 3237600., 3520890., 3573288.,
      3626106., 3679344., 3232905., 3280012., 3327497., 3375360., 2948040.,
      2989856., 3032008., 3074496., 2616455., 2652980., 2689799., 2726912.,
      3067528., 3108064., 3148936., 3190144., 3576256., 3622656., 3669440.,
      3716608., 4149240., 4201504., 4254200., 4307328., 4725680., 4783808.,
      4842416., 4901504., 4149240., 4201504., 4254200., 4307328., 3576256.,
      3622656., 3669440., 3716608., 3067528., 3108064., 3148936., 3190144.,
      2616455., 2652980., 2689799., 2726912., 2948040., 2989856., 3032008.,
      3074496., 3232905., 3280012., 3327497., 3375360., 3520890., 3573288.,
      3626106., 3679344., 3095145., 3142252., 3189737., 3237600., 2673096.,
      2714912., 2757064., 2799552., 2295015., 2331540., 2368359., 2405472.,
      1928550., 1960808., 1993318., 2026080., 2168784., 2205504., 2242512.,
      2279808., 2382330., 2423512., 2465018., 2506848., 2598596., 2644240.,
      2690244., 2736608., 2288250., 2329176., 2370426., 2412000., 1980880.,
      2017088., 2053584., 2090368., 1696230., 1727720., 1759462., 1791456.,
      1381221., 1407676., 1434341., 1461216., 1556440., 1586528., 1616856.,
      1647424., 1725963., 1759684., 1793675., 1827936., 1898766., 1936120.,
      1973774., 2011728., 1688555., 1722020., 1755755., 1789760., 1480664.,
      1510240., 1540056., 1570112., 1274309., 1299996., 1325893., 1352000.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      559576., 569056., 578584., 588160., 564088., 573664., 583288., 592960.,
      568600., 578272., 587992., 597760., 573112., 582880., 592696., 602560.,
      577624., 587488., 597400., 607360., 582136., 592096., 602104., 612160.,
      586648., 596704., 606808., 616960., 604696., 615136., 625624., 636160.,
      609208., 619744., 630328., 640960., 613720., 624352., 635032., 645760.,
      618232., 628960., 639736., 650560., 622744., 633568., 644440., 655360.,
      627256., 638176., 649144., 660160., 631768., 642784., 653848., 664960.,
      649816., 661216., 672664., 684160., 654328., 665824., 677368., 688960.,
      658840., 670432., 682072., 693760., 663352., 675040., 686776., 698560.,
      667864., 679648., 691480., 703360., 672376., 684256., 696184., 708160.,
      676888., 688864., 700888., 712960., 694936., 707296., 719704., 732160.,
      699448., 711904., 724408., 736960., 703960., 716512., 729112., 741760.,
      708472., 721120., 733816., 746560., 712984., 725728., 738520., 751360.,
      717496., 730336., 743224., 756160., 722008., 734944., 747928., 760960.,
      740056., 753376., 766744., 780160., 744568., 757984., 771448., 784960.,
      749080., 762592., 776152., 789760., 753592., 767200., 780856., 794560.,
      758104., 771808., 785560., 799360., 762616., 776416., 790264., 804160.,
      767128., 781024., 794968., 808960., 785176., 799456., 813784., 828160.,
      789688., 804064., 818488., 832960., 794200., 808672., 823192., 837760.,
      798712., 813280., 827896., 842560., 803224., 817888., 832600., 847360.,
      807736., 822496., 837304., 852160., 812248., 827104., 842008., 856960.,
      830296., 845536., 860824., 876160., 834808., 850144., 865528., 880960.,
      839320., 854752., 870232., 885760., 843832., 859360., 874936., 890560.,
      848344., 863968., 879640., 895360., 852856., 868576., 884344., 900160.,
      857368., 873184., 889048., 904960.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5682725.,  5708170.,  5758058.,  5783608.,  5833811.,  5859466.,
      5909984.,  5935744.,  6545704.,  6575024.,  6632384.,  6661824.,
      6719544.,  6749104.,  6807184.,  6836864.,  7333871.,  7366614.,
      7431386.,  7464264.,  7529441.,  7562454.,  7628036.,  7661184.,
      8114330.,  8150556.,  8222680.,  8259056.,  8331630.,  8368156.,
      8441180.,  8477856.,  7416851.,  7449622.,  7514878.,  7547784.,
      7613445.,  7646486.,  7712552.,  7745728.,  6738280.,  6767536.,
      6825984.,  6855360.,  6914168.,  6943664.,  7002832.,  7032448.,
      5873785.,  5899466.,  5950654.,  5976440.,  6027943.,  6053834.,
      6105652.,  6131648.,  7111854.,  7141324.,  7202356.,  7231952.,
      7293362.,  7323084.,  7384872.,  7414720.,  8200944.,  8234912.,
      8304960.,  8339072.,  8409552.,  8443808.,  8514720.,  8549120.,
      9276010.,  9314036.,  9393028.,  9431216.,  9510694.,  9549044.,
      9629008.,  9667520.,  10342620., 10384776., 10472640., 10514976.,
      10603380., 10645896., 10734840., 10777536., 9453794.,  9491956.,
      9571324.,  9609648.,  9689502.,  9727988.,  9808328.,  9846976.,
      8584816.,  8618912.,  8689856.,  8724096.,  8795472.,  8829856.,
      8901664.,  8936192.,  7510470.,  7540428.,  7602508.,  7632592.,
      7695050.,  7725260.,  7788096.,  7818432.,  8838063.,  8872398.,
      8943734.,  8978216.,  9049993.,  9084622.,  9156840.,  9191616.,
      10188024., 10227600., 10309376., 10349120., 10431400., 10471312.,
      10554096., 10594176., 11582829., 11627218., 11719350., 11763928.,
      11856627., 11901394., 11994660., 12039616., 12966510., 13015796.,
      13118200., 13167696., 13270730., 13320436., 13424100., 13474016.,
      11838137., 11882770., 11975170., 12019992., 12112959., 12157970.,
      12251504., 12296704., 10732472., 10772368., 10854848., 10894912.,
      10977896., 11018128., 11101616., 11142016., 9403915.,  9438990.,
      9511122.,  9546344.,  9618917.,  9654286.,  9727300.,  9762816.,
      10794152., 10834192., 10914992., 10955200., 11036504., 11076880.,
      11158688., 11199232., 12430144., 12476288., 12568832., 12615168.,
      12708288., 12754816., 12848512., 12895232., 14167928., 14219760.,
      14323952., 14376000., 14480840., 14533104., 14638592., 14691072.,
      15890000., 15947616., 16063360., 16121216., 16237680., 16295776.,
      16412960., 16471296., 14221336., 14273520., 14377872., 14430272.,
      14535272., 14587888., 14693536., 14746368., 12580160., 12626816.,
      12719872., 12766720., 12860352., 12907392., 13001600., 13048832.,
      10962632., 11003664., 11085008., 11126208., 11208056., 11249424.,
      11331776., 11373312., 9564151.,  9600782.,  9673406.,  9710184.,
      9783249.,  9820174.,  9893680.,  9930752.,  10976952., 11019152.,
      11102400., 11144768., 11228520., 11271056., 11355312., 11398016.,
      12292133., 12339474., 12433262., 12480792., 12575147., 12622866.,
      12717788., 12765696., 13592990., 13645556., 13749800., 13802576.,
      13907450., 13960436., 14065940., 14119136., 12199153., 12246738.,
      12340794., 12388568., 12483191., 12531154., 12626344., 12674496.,
      10831224., 10873744., 10957696., 11000384., 11084840., 11127696.,
      11212656., 11255680., 9464787.,  9502158.,  9575578.,  9613096.,
      9686957.,  9724622.,  9798924.,  9836736.,  8266830.,  8299212.,
      8363988.,  8396496.,  8461650.,  8494284.,  8559816.,  8592576.,
      9386480.,  9423776.,  9497664.,  9535104.,  9609424.,  9647008.,
      9721760.,  9759488.,  10471114., 10512884., 10595812., 10637744.,
      10721158., 10763252., 10847152., 10889408., 11542684., 11589000.,
      11680896., 11727392., 11819828., 11866504., 11959480., 12006336.,
      10332482., 10374388., 10457180., 10499248., 10582526., 10624756.,
      10708520., 10750912., 9144688.,  9182112.,  9255872.,  9293440.,
      9367632.,  9405344.,  9479968.,  9517824.,  7934310.,  7967180.,
      8031468.,  8064464.,  8129130.,  8162252.,  8227296.,  8260544.,
      6608429.,  6635722.,  6690418.,  6717816.,  6772827.,  6800330.,
      6855656.,  6883264.,  7508200.,  7539632.,  7602048.,  7633600.,
      7696376.,  7728048.,  7791184.,  7822976.,  8437479.,  8472598.,
      8542674.,  8577928.,  8648409.,  8683798.,  8754684.,  8790208.,
      9356874.,  9395740.,  9473416.,  9512432.,  9590558.,  9629724.,
      9708300.,  9747616.,  8410251.,  8445398.,  8515446.,  8550728.,
      8621181.,  8656598.,  8727456.,  8763008.,  7482664.,  7514032.,
      7576512.,  7608000.,  7670840.,  7702448.,  7765648.,  7797376.,
      6508545.,  6536074.,  6590534.,  6618168.,  6672943.,  6700682.,
      6755772.,  6783616.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1110824., 1119152., 1129760., 1138112., 1148792., 1157168., 1167920.,
      1176320., 1119752., 1128176., 1138880., 1147328., 1158104., 1166576.,
      1177424., 1185920., 1128680., 1137200., 1148000., 1156544., 1167416.,
      1175984., 1186928., 1195520., 1137608., 1146224., 1157120., 1165760.,
      1176728., 1185392., 1196432., 1205120., 1146536., 1155248., 1166240.,
      1174976., 1186040., 1194800., 1205936., 1214720., 1155464., 1164272.,
      1175360., 1184192., 1195352., 1204208., 1215440., 1224320., 1164392.,
      1173296., 1184480., 1193408., 1204664., 1213616., 1224944., 1233920.,
      1200104., 1209392., 1220960., 1230272., 1241912., 1251248., 1262960.,
      1272320., 1209032., 1218416., 1230080., 1239488., 1251224., 1260656.,
      1272464., 1281920., 1217960., 1227440., 1239200., 1248704., 1260536.,
      1270064., 1281968., 1291520., 1226888., 1236464., 1248320., 1257920.,
      1269848., 1279472., 1291472., 1301120., 1235816., 1245488., 1257440.,
      1267136., 1279160., 1288880., 1300976., 1310720., 1244744., 1254512.,
      1266560., 1276352., 1288472., 1298288., 1310480., 1320320., 1253672.,
      1263536., 1275680., 1285568., 1297784., 1307696., 1319984., 1329920.,
      1289384., 1299632., 1312160., 1322432., 1335032., 1345328., 1358000.,
      1368320., 1298312., 1308656., 1321280., 1331648., 1344344., 1354736.,
      1367504., 1377920., 1307240., 1317680., 1330400., 1340864., 1353656.,
      1364144., 1377008., 1387520., 1316168., 1326704., 1339520., 1350080.,
      1362968., 1373552., 1386512., 1397120., 1325096., 1335728., 1348640.,
      1359296., 1372280., 1382960., 1396016., 1406720., 1334024., 1344752.,
      1357760., 1368512., 1381592., 1392368., 1405520., 1416320., 1342952.,
      1353776., 1366880., 1377728., 1390904., 1401776., 1415024., 1425920.,
      1378664., 1389872., 1403360., 1414592., 1428152., 1439408., 1453040.,
      1464320., 1387592., 1398896., 1412480., 1423808., 1437464., 1448816.,
      1462544., 1473920., 1396520., 1407920., 1421600., 1433024., 1446776.,
      1458224., 1472048., 1483520., 1405448., 1416944., 1430720., 1442240.,
      1456088., 1467632., 1481552., 1493120., 1414376., 1425968., 1439840.,
      1451456., 1465400., 1477040., 1491056., 1502720., 1423304., 1434992.,
      1448960., 1460672., 1474712., 1486448., 1500560., 1512320., 1432232.,
      1444016., 1458080., 1469888., 1484024., 1495856., 1510064., 1521920.,
      1467944., 1480112., 1494560., 1506752., 1521272., 1533488., 1548080.,
      1560320., 1476872., 1489136., 1503680., 1515968., 1530584., 1542896.,
      1557584., 1569920., 1485800., 1498160., 1512800., 1525184., 1539896.,
      1552304., 1567088., 1579520., 1494728., 1507184., 1521920., 1534400.,
      1549208., 1561712., 1576592., 1589120., 1503656., 1516208., 1531040.,
      1543616., 1558520., 1571120., 1586096., 1598720., 1512584., 1525232.,
      1540160., 1552832., 1567832., 1580528., 1595600., 1608320., 1521512.,
      1534256., 1549280., 1562048., 1577144., 1589936., 1605104., 1617920.,
      1557224., 1570352., 1585760., 1598912., 1614392., 1627568., 1643120.,
      1656320., 1566152., 1579376., 1594880., 1608128., 1623704., 1636976.,
      1652624., 1665920., 1575080., 1588400., 1604000., 1617344., 1633016.,
      1646384., 1662128., 1675520., 1584008., 1597424., 1613120., 1626560.,
      1642328., 1655792., 1671632., 1685120., 1592936., 1606448., 1622240.,
      1635776., 1651640., 1665200., 1681136., 1694720., 1601864., 1615472.,
      1631360., 1644992., 1660952., 1674608., 1690640., 1704320., 1610792.,
      1624496., 1640480., 1654208., 1670264., 1684016., 1700144., 1713920.,
      1646504., 1660592., 1676960., 1691072., 1707512., 1721648., 1738160.,
      1752320., 1655432., 1669616., 1686080., 1700288., 1716824., 1731056.,
      1747664., 1761920., 1664360., 1678640., 1695200., 1709504., 1726136.,
      1740464., 1757168., 1771520., 1673288., 1687664., 1704320., 1718720.,
      1735448., 1749872., 1766672., 1781120., 1682216., 1696688., 1713440.,
      1727936., 1744760., 1759280., 1776176., 1790720., 1691144., 1705712.,
      1722560., 1737152., 1754072., 1768688., 1785680., 1800320., 1700072.,
      1714736., 1731680., 1746368., 1763384., 1778096., 1795184., 1809920.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x8x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6683365.,  6708810.,  6734255.,  6759700.,  6809862.,  6835412.,
      6860962.,  6886512.,  6937199.,  6962854.,  6988509.,  7014164.,
      7065376.,  7091136.,  7116896.,  7142656.,  7687112.,  7716432.,
      7745752.,  7775072.,  7832704.,  7862144.,  7891584.,  7921024.,
      7979256.,  8008816.,  8038376.,  8067936.,  8126768.,  8156448.,
      8186128.,  8215808.,  8461815.,  8494558.,  8527301.,  8560044.,
      8625478.,  8658356.,  8691234.,  8724112.,  8790221.,  8823234.,
      8856247.,  8889260.,  8956044.,  8989192.,  9022340.,  9055488.,
      9206706.,  9242932.,  9279158.,  9315384.,  9388440.,  9424816.,
      9461192.,  9497568.,  9571374.,  9607900.,  9644426.,  9680952.,
      9755508.,  9792184.,  9828860.,  9865536.,  8301603.,  8334374.,
      8367145.,  8399916.,  8465778.,  8498684.,  8531590.,  8564496.,
      8631033.,  8664074.,  8697115.,  8730156.,  8797368.,  8830544.,
      8863720.,  8896896.,  7446664.,  7475920.,  7505176.,  7534432.,
      7593280.,  7622656.,  7652032.,  7681408.,  7740856.,  7770352.,
      7799848.,  7829344.,  7889392.,  7919008.,  7948624.,  7978240.,
      6437537.,  6463218.,  6488899.,  6514580.,  6566082.,  6591868.,
      6617654.,  6643440.,  6695467.,  6721358.,  6747249.,  6773140.,
      6825692.,  6851688.,  6877684.,  6903680.,  6876222.,  6905692.,
      6935162.,  6964632.,  7025868.,  7055464.,  7085060.,  7114656.,
      7176522.,  7206244.,  7235966.,  7265688.,  7328184.,  7358032.,
      7387880.,  7417728.,  7929136.,  7963104.,  7997072.,  8031040.,
      8101184.,  8135296.,  8169408.,  8203520.,  8274384.,  8308640.,
      8342896.,  8377152.,  8448736.,  8483136.,  8517536.,  8551936.,
      8870474.,  8908500.,  8946526.,  8984552.,  9063900.,  9102088.,
      9140276.,  9178464.,  9258622.,  9296972.,  9335322.,  9373672.,
      9454640.,  9493152.,  9531664.,  9570176.,  9776396.,  9818552.,
      9860708.,  9902864.,  9991200.,  10033536., 10075872., 10118208.,
      10207444., 10249960., 10292476., 10334992., 10425128., 10467824.,
      10510520., 10553216., 8842418.,  8880580.,  8918742.,  8956904.,
      9036356.,  9074680.,  9113004.,  9151328.,  9231590.,  9270076.,
      9308562.,  9347048.,  9428120.,  9466768.,  9505416.,  9544064.,
      7964592.,  7998688.,  8032784.,  8066880.,  8137664.,  8171904.,
      8206144.,  8240384.,  8311888.,  8346272.,  8380656.,  8415040.,
      8487264.,  8521792.,  8556320.,  8590848.,  6918278.,  6948236.,
      6978194.,  7008152.,  7069972.,  7100056.,  7130140.,  7160224.,
      7222674.,  7252884.,  7283094.,  7313304.,  7376384.,  7406720.,
      7437056.,  7467392.,  7874879.,  7909214.,  7943549.,  7977884.,
      8049210.,  8083692.,  8118174.,  8152656.,  8224717.,  8259346.,
      8293975.,  8328604.,  8401400.,  8436176.,  8470952.,  8505728.,
      9175896.,  9215472.,  9255048.,  9294624.,  9376448.,  9416192.,
      9455936.,  9495680.,  9578344.,  9618256.,  9658168.,  9698080.,
      9781584.,  9821664.,  9861744.,  9901824.,  10481013., 10525402.,
      10569791., 10614180., 10706762., 10751340., 10795918., 10840496.,
      10934023., 10978790., 11023557., 11068324., 11162796., 11207752.,
      11252708., 11297664., 11743318., 11792604., 11841890., 11891176.,
      11994264., 12043760., 12093256., 12142752., 12246890., 12296596.,
      12346302., 12396008., 12501196., 12551112., 12601028., 12650944.,
      10737433., 10782066., 10826699., 10871332., 10964206., 11009028.,
      11053850., 11098672., 11192491., 11237502., 11282513., 11327524.,
      11422288., 11467488., 11512688., 11557888., 9797528.,  9837424.,
      9877320.,  9917216.,  10000128., 10040192., 10080256., 10120320.,
      10204072., 10244304., 10284536., 10324768., 10409360., 10449760.,
      10490160., 10530560., 8678675.,  8713750.,  8748825.,  8783900.,
      8856590.,  8891812.,  8927034.,  8962256.,  9035681.,  9071050.,
      9106419.,  9141788.,  9215948.,  9251464.,  9286980.,  9322496.,
      9801448.,  9841488.,  9881528.,  9921568.,  10002512., 10042720.,
      10082928., 10123136., 10204920., 10245296., 10285672., 10326048.,
      10408672., 10449216., 10489760., 10530304., 11388480., 11434624.,
      11480768., 11526912., 11619584., 11665920., 11712256., 11758592.,
      11852224., 11898752., 11945280., 11991808., 12086400., 12133120.,
      12179840., 12226560., 13091448., 13143280., 13195112., 13246944.,
      13351568., 13403616., 13455664., 13507712., 13613416., 13665680.,
      13717944., 13770208., 13876992., 13929472., 13981952., 14034432.,
      14740368., 14797984., 14855600., 14913216., 15029504., 15087360.,
      15145216., 15203072., 15320560., 15378656., 15436752., 15494848.,
      15613536., 15671872., 15730208., 15788544., 13187672., 13239856.,
      13292040., 13344224., 13448816., 13501216., 13553616., 13606016.,
      13711688., 13764304., 13816920., 13869536., 13976288., 14029120.,
      14081952., 14134784., 11712576., 11759232., 11805888., 11852544.,
      11945728., 11992576., 12039424., 12086272., 12180416., 12227456.,
      12274496., 12321536., 12416640., 12463872., 12511104., 12558336.,
      10312008., 10353040., 10394072., 10435104., 10516656., 10557856.,
      10599056., 10640256., 10722648., 10764016., 10805384., 10846752.,
      10929984., 10971520., 11013056., 11054592., 8689879.,  8726510.,
      8763141.,  8799772.,  8871378.,  8908156.,  8944934.,  8981712.,
      9054053.,  9090978.,  9127903.,  9164828.,  9237904.,  9274976.,
      9312048.,  9349120.,  10112152., 10154352., 10196552., 10238752.,
      10320896., 10363264., 10405632., 10448000., 10530984., 10573520.,
      10616056., 10658592., 10742416., 10785120., 10827824., 10870528.,
      11515741., 11563082., 11610423., 11657764., 11750706., 11798236.,
      11845766., 11893296., 11987183., 12034902., 12082621., 12130340.,
      12225172., 12273080., 12320988., 12368896., 12870118., 12922684.,
      12975250., 13027816., 13131304., 13184080., 13236856., 13289632.,
      13394170., 13447156., 13500142., 13553128., 13658716., 13711912.,
      13765108., 13818304., 11599873., 11647458., 11695043., 11742628.,
      11835862., 11883636., 11931410., 11979184., 12073363., 12121326.,
      12169289., 12217252., 12312376., 12360528., 12408680., 12456832.,
      10402008., 10444528., 10487048., 10529568., 10612800., 10655488.,
      10698176., 10740864., 10824936., 10867792., 10910648., 10953504.,
      11038416., 11081440., 11124464., 11167488., 9252779.,  9290150.,
      9327521.,  9364892.,  9437862.,  9475380.,  9512898.,  9550416.,
      9624121.,  9661786.,  9699451.,  9737116.,  9811556.,  9849368.,
      9887180.,  9924992.,  8046622.,  8079004.,  8111386.,  8143768.,
      8207532.,  8240040.,  8272548.,  8305056.,  8369450.,  8402084.,
      8434718.,  8467352.,  8532376.,  8565136.,  8597896.,  8630656.,
      9119280.,  9156576.,  9193872.,  9231168.,  9303616.,  9341056.,
      9378496.,  9415936.,  9489104.,  9526688.,  9564272.,  9601856.,
      9675744.,  9713472.,  9751200.,  9788928.,  10300522., 10342292.,
      10384062., 10425832., 10507260., 10549192., 10591124., 10633056.,
      10715294., 10757388., 10799482., 10841576., 10924624., 10966880.,
      11009136., 11051392., 11437132., 11483448., 11529764., 11576080.,
      11666272., 11712768., 11759264., 11805760., 11896852., 11943528.,
      11990204., 12036880., 12128872., 12175728., 12222584., 12269440.,
      10246354., 10288260., 10330166., 10372072., 10453092., 10495160.,
      10537228., 10579296., 10661126., 10703356., 10745586., 10787816.,
      10870456., 10912848., 10955240., 10997632., 9118896.,  9156320.,
      9193744.,  9231168.,  9303232.,  9340800.,  9378368.,  9415936.,
      9488720.,  9526432.,  9564144.,  9601856.,  9675360.,  9713216.,
      9751072.,  9788928.,  8010342.,  8043212.,  8076082.,  8108952.,
      8171764.,  8204760.,  8237756.,  8270752.,  8334194.,  8367316.,
      8400438.,  8433560.,  8497632.,  8530880.,  8564128.,  8597376.,
      6432189.,  6459482.,  6486775.,  6514068.,  6566366.,  6593764.,
      6621162.,  6648560.,  6701383.,  6728886.,  6756389.,  6783892.,
      6837240.,  6864848.,  6892456.,  6920064.,  7322376.,  7353808.,
      7385240.,  7416672.,  7476160.,  7507712.,  7539264.,  7570816.,
      7630904.,  7662576.,  7694248.,  7725920.,  7786608.,  7818400.,
      7850192.,  7881984.,  8452255.,  8487374.,  8522493.,  8557612.,
      8624622.,  8659876.,  8695130.,  8730384.,  8798069.,  8833458.,
      8868847.,  8904236.,  8972596.,  9008120.,  9043644.,  9079168.,
      9545922.,  9584788.,  9623654.,  9662520.,  9736872.,  9775888.,
      9814904.,  9853920.,  9929022.,  9968188.,  10007354., 10046520.,
      10122372., 10161688., 10201004., 10240320., 8639435.,  8674582.,
      8709729.,  8744876.,  8811802.,  8847084.,  8882366.,  8917648.,
      8985249.,  9020666.,  9056083.,  9091500.,  9159776.,  9195328.,
      9230880.,  9266432.,  7787464.,  7818832.,  7850200.,  7881568.,
      7941248.,  7972736.,  8004224.,  8035712.,  8095992.,  8127600.,
      8159208.,  8190816.,  8251696.,  8283424.,  8315152.,  8346880.,
      6662777.,  6690306.,  6717835.,  6745364.,  6797466.,  6825100.,
      6852734.,  6880368.,  6932995.,  6960734.,  6988473.,  7016212.,
      7069364.,  7097208.,  7125052.,  7152896.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x8x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2213320., 2221648., 2229976., 2238304., 2251168., 2259520., 2267872.,
      2276224., 2289208., 2297584., 2305960., 2314336., 2327440., 2335840.,
      2344240., 2352640., 2231080., 2239504., 2247928., 2256352., 2269312.,
      2277760., 2286208., 2294656., 2307736., 2316208., 2324680., 2333152.,
      2346352., 2354848., 2363344., 2371840., 2248840., 2257360., 2265880.,
      2274400., 2287456., 2296000., 2304544., 2313088., 2326264., 2334832.,
      2343400., 2351968., 2365264., 2373856., 2382448., 2391040., 2266600.,
      2275216., 2283832., 2292448., 2305600., 2314240., 2322880., 2331520.,
      2344792., 2353456., 2362120., 2370784., 2384176., 2392864., 2401552.,
      2410240., 2284360., 2293072., 2301784., 2310496., 2323744., 2332480.,
      2341216., 2349952., 2363320., 2372080., 2380840., 2389600., 2403088.,
      2411872., 2420656., 2429440., 2302120., 2310928., 2319736., 2328544.,
      2341888., 2350720., 2359552., 2368384., 2381848., 2390704., 2399560.,
      2408416., 2422000., 2430880., 2439760., 2448640., 2319880., 2328784.,
      2337688., 2346592., 2360032., 2368960., 2377888., 2386816., 2400376.,
      2409328., 2418280., 2427232., 2440912., 2449888., 2458864., 2467840.,
      2390920., 2400208., 2409496., 2418784., 2432608., 2441920., 2451232.,
      2460544., 2474488., 2483824., 2493160., 2502496., 2516560., 2525920.,
      2535280., 2544640., 2408680., 2418064., 2427448., 2436832., 2450752.,
      2460160., 2469568., 2478976., 2493016., 2502448., 2511880., 2521312.,
      2535472., 2544928., 2554384., 2563840., 2426440., 2435920., 2445400.,
      2454880., 2468896., 2478400., 2487904., 2497408., 2511544., 2521072.,
      2530600., 2540128., 2554384., 2563936., 2573488., 2583040., 2444200.,
      2453776., 2463352., 2472928., 2487040., 2496640., 2506240., 2515840.,
      2530072., 2539696., 2549320., 2558944., 2573296., 2582944., 2592592.,
      2602240., 2461960., 2471632., 2481304., 2490976., 2505184., 2514880.,
      2524576., 2534272., 2548600., 2558320., 2568040., 2577760., 2592208.,
      2601952., 2611696., 2621440., 2479720., 2489488., 2499256., 2509024.,
      2523328., 2533120., 2542912., 2552704., 2567128., 2576944., 2586760.,
      2596576., 2611120., 2620960., 2630800., 2640640., 2497480., 2507344.,
      2517208., 2527072., 2541472., 2551360., 2561248., 2571136., 2585656.,
      2595568., 2605480., 2615392., 2630032., 2639968., 2649904., 2659840.,
      2568520., 2578768., 2589016., 2599264., 2614048., 2624320., 2634592.,
      2644864., 2659768., 2670064., 2680360., 2690656., 2705680., 2716000.,
      2726320., 2736640., 2586280., 2596624., 2606968., 2617312., 2632192.,
      2642560., 2652928., 2663296., 2678296., 2688688., 2699080., 2709472.,
      2724592., 2735008., 2745424., 2755840., 2604040., 2614480., 2624920.,
      2635360., 2650336., 2660800., 2671264., 2681728., 2696824., 2707312.,
      2717800., 2728288., 2743504., 2754016., 2764528., 2775040., 2621800.,
      2632336., 2642872., 2653408., 2668480., 2679040., 2689600., 2700160.,
      2715352., 2725936., 2736520., 2747104., 2762416., 2773024., 2783632.,
      2794240., 2639560., 2650192., 2660824., 2671456., 2686624., 2697280.,
      2707936., 2718592., 2733880., 2744560., 2755240., 2765920., 2781328.,
      2792032., 2802736., 2813440., 2657320., 2668048., 2678776., 2689504.,
      2704768., 2715520., 2726272., 2737024., 2752408., 2763184., 2773960.,
      2784736., 2800240., 2811040., 2821840., 2832640., 2675080., 2685904.,
      2696728., 2707552., 2722912., 2733760., 2744608., 2755456., 2770936.,
      2781808., 2792680., 2803552., 2819152., 2830048., 2840944., 2851840.,
      2746120., 2757328., 2768536., 2779744., 2795488., 2806720., 2817952.,
      2829184., 2845048., 2856304., 2867560., 2878816., 2894800., 2906080.,
      2917360., 2928640., 2763880., 2775184., 2786488., 2797792., 2813632.,
      2824960., 2836288., 2847616., 2863576., 2874928., 2886280., 2897632.,
      2913712., 2925088., 2936464., 2947840., 2781640., 2793040., 2804440.,
      2815840., 2831776., 2843200., 2854624., 2866048., 2882104., 2893552.,
      2905000., 2916448., 2932624., 2944096., 2955568., 2967040., 2799400.,
      2810896., 2822392., 2833888., 2849920., 2861440., 2872960., 2884480.,
      2900632., 2912176., 2923720., 2935264., 2951536., 2963104., 2974672.,
      2986240., 2817160., 2828752., 2840344., 2851936., 2868064., 2879680.,
      2891296., 2902912., 2919160., 2930800., 2942440., 2954080., 2970448.,
      2982112., 2993776., 3005440., 2834920., 2846608., 2858296., 2869984.,
      2886208., 2897920., 2909632., 2921344., 2937688., 2949424., 2961160.,
      2972896., 2989360., 3001120., 3012880., 3024640., 2852680., 2864464.,
      2876248., 2888032., 2904352., 2916160., 2927968., 2939776., 2956216.,
      2968048., 2979880., 2991712., 3008272., 3020128., 3031984., 3043840.,
      2923720., 2935888., 2948056., 2960224., 2976928., 2989120., 3001312.,
      3013504., 3030328., 3042544., 3054760., 3066976., 3083920., 3096160.,
      3108400., 3120640., 2941480., 2953744., 2966008., 2978272., 2995072.,
      3007360., 3019648., 3031936., 3048856., 3061168., 3073480., 3085792.,
      3102832., 3115168., 3127504., 3139840., 2959240., 2971600., 2983960.,
      2996320., 3013216., 3025600., 3037984., 3050368., 3067384., 3079792.,
      3092200., 3104608., 3121744., 3134176., 3146608., 3159040., 2977000.,
      2989456., 3001912., 3014368., 3031360., 3043840., 3056320., 3068800.,
      3085912., 3098416., 3110920., 3123424., 3140656., 3153184., 3165712.,
      3178240., 2994760., 3007312., 3019864., 3032416., 3049504., 3062080.,
      3074656., 3087232., 3104440., 3117040., 3129640., 3142240., 3159568.,
      3172192., 3184816., 3197440., 3012520., 3025168., 3037816., 3050464.,
      3067648., 3080320., 3092992., 3105664., 3122968., 3135664., 3148360.,
      3161056., 3178480., 3191200., 3203920., 3216640., 3030280., 3043024.,
      3055768., 3068512., 3085792., 3098560., 3111328., 3124096., 3141496.,
      3154288., 3167080., 3179872., 3197392., 3210208., 3223024., 3235840.,
      3101320., 3114448., 3127576., 3140704., 3158368., 3171520., 3184672.,
      3197824., 3215608., 3228784., 3241960., 3255136., 3273040., 3286240.,
      3299440., 3312640., 3119080., 3132304., 3145528., 3158752., 3176512.,
      3189760., 3203008., 3216256., 3234136., 3247408., 3260680., 3273952.,
      3291952., 3305248., 3318544., 3331840., 3136840., 3150160., 3163480.,
      3176800., 3194656., 3208000., 3221344., 3234688., 3252664., 3266032.,
      3279400., 3292768., 3310864., 3324256., 3337648., 3351040., 3154600.,
      3168016., 3181432., 3194848., 3212800., 3226240., 3239680., 3253120.,
      3271192., 3284656., 3298120., 3311584., 3329776., 3343264., 3356752.,
      3370240., 3172360., 3185872., 3199384., 3212896., 3230944., 3244480.,
      3258016., 3271552., 3289720., 3303280., 3316840., 3330400., 3348688.,
      3362272., 3375856., 3389440., 3190120., 3203728., 3217336., 3230944.,
      3249088., 3262720., 3276352., 3289984., 3308248., 3321904., 3335560.,
      3349216., 3367600., 3381280., 3394960., 3408640., 3207880., 3221584.,
      3235288., 3248992., 3267232., 3280960., 3294688., 3308416., 3326776.,
      3340528., 3354280., 3368032., 3386512., 3400288., 3414064., 3427840.,
      3278920., 3293008., 3307096., 3321184., 3339808., 3353920., 3368032.,
      3382144., 3400888., 3415024., 3429160., 3443296., 3462160., 3476320.,
      3490480., 3504640., 3296680., 3310864., 3325048., 3339232., 3357952.,
      3372160., 3386368., 3400576., 3419416., 3433648., 3447880., 3462112.,
      3481072., 3495328., 3509584., 3523840., 3314440., 3328720., 3343000.,
      3357280., 3376096., 3390400., 3404704., 3419008., 3437944., 3452272.,
      3466600., 3480928., 3499984., 3514336., 3528688., 3543040., 3332200.,
      3346576., 3360952., 3375328., 3394240., 3408640., 3423040., 3437440.,
      3456472., 3470896., 3485320., 3499744., 3518896., 3533344., 3547792.,
      3562240., 3349960., 3364432., 3378904., 3393376., 3412384., 3426880.,
      3441376., 3455872., 3475000., 3489520., 3504040., 3518560., 3537808.,
      3552352., 3566896., 3581440., 3367720., 3382288., 3396856., 3411424.,
      3430528., 3445120., 3459712., 3474304., 3493528., 3508144., 3522760.,
      3537376., 3556720., 3571360., 3586000., 3600640., 3385480., 3400144.,
      3414808., 3429472., 3448672., 3463360., 3478048., 3492736., 3512056.,
      3526768., 3541480., 3556192., 3575632., 3590368., 3605104., 3619840.};
  const std::array<int, 4> in_shape = {{3, 8, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1371120., 1646874., 1923096., 2199768., 1926120., 1652058., 1377600.,
      1616580., 1941177., 2266152., 2591484., 2268504., 1945209., 1621620.,
      1864320., 2238072., 2612064., 2986272., 2613408., 2240376., 1867200.,
      2113380., 2536407., 2959488., 3382596., 2959488., 2536407., 2113380.,
      1867200., 2240376., 2613408., 2986272., 2612064., 2238072., 1864320.,
      1621620., 1945209., 2268504., 2591484., 2266152., 1941177., 1616580.,
      1377600., 1652058., 1926120., 2199768., 1923096., 1646874., 1371120.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19317., 19488., 19659., 19830., 20001., 20172., 20343., 20685., 20856.,
      21027., 21198., 21369., 21540., 21711., 22053., 22224., 22395., 22566.,
      22737., 22908., 23079., 23421., 23592., 23763., 23934., 24105., 24276.,
      24447., 24789., 24960., 25131., 25302., 25473., 25644., 25815., 26157.,
      26328., 26499., 26670., 26841., 27012., 27183., 27525., 27696., 27867.,
      28038., 28209., 28380., 28551.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2733690., 2742240., 3283434., 3293748., 3834096., 3846192., 4385640.,
      4399536., 3840018., 3852240., 3293586., 3304116., 2746380., 2755200.,
      3222765., 3233160., 3869817., 3882354., 4517604., 4532304., 5166084.,
      5182968., 4522161., 4537008., 3877629., 3890418., 3232530., 3243240.,
      3716280., 3728640., 4461240., 4476144., 5206656., 5224128., 5952480.,
      5972544., 5209176., 5226816., 4465560., 4480752., 3721680., 3734400.,
      4212315., 4226760., 5055399., 5072814., 5898564., 5918976., 6741756.,
      6765192., 5898375., 5918976., 5055075., 5072814., 4211910., 4226760.,
      3721080., 3734400., 4464696., 4480752., 5208000., 5226816., 5950944.,
      5972544., 5205144., 5224128., 4459800., 4476144., 3714960., 3728640.,
      3231165., 3243240., 3875865., 3890418., 4519956., 4537008., 5163396.,
      5182968., 4515105., 4532304., 3867549., 3882354., 3220770., 3233160.,
      2744490., 2755200., 3291210., 3304116., 3837120., 3852240., 4382184.,
      4399536., 3830946., 3846192., 3280626., 3293748., 2731260., 2742240.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      37167., 38634., 37491., 38976., 37815., 39318., 38139., 39660., 38463.,
      40002., 38787., 40344., 39111., 40686., 39759., 41370., 40083., 41712.,
      40407., 42054., 40731., 42396., 41055., 42738., 41379., 43080., 41703.,
      43422., 42351., 44106., 42675., 44448., 42999., 44790., 43323., 45132.,
      43647., 45474., 43971., 45816., 44295., 46158., 44943., 46842., 45267.,
      47184., 45591., 47526., 45915., 47868., 46239., 48210., 46563., 48552.,
      46887., 48894., 47535., 49578., 47859., 49920., 48183., 50262., 48507.,
      50604., 48831., 50946., 49155., 51288., 49479., 51630., 50127., 52314.,
      50451., 52656., 50775., 52998., 51099., 53340., 51423., 53682., 51747.,
      54024., 52071., 54366., 52719., 55050., 53043., 55392., 53367., 55734.,
      53691., 56076., 54015., 56418., 54339., 56760., 54663., 57102.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5458830.,  5467380.,  5475930.,  5484480.,  6556554.,  6566868.,
      6577182.,  6587496.,  7656096.,  7668192.,  7680288.,  7692384.,
      8757384.,  8771280.,  8785176.,  8799072.,  7667814.,  7680036.,
      7692258.,  7704480.,  6576642.,  6587172.,  6597702.,  6608232.,
      5483940.,  5492760.,  5501580.,  5510400.,  6435135.,  6445530.,
      6455925.,  6466320.,  7727097.,  7739634.,  7752171.,  7764708.,
      9020508.,  9035208.,  9049908.,  9064608.,  10315284., 10332168.,
      10349052., 10365936., 9029475.,  9044322.,  9059169.,  9074016.,
      7742469.,  7755258.,  7768047.,  7780836.,  6454350.,  6465060.,
      6475770.,  6486480.,  7420200.,  7432560.,  7444920.,  7457280.,
      8907576.,  8922480.,  8937384.,  8952288.,  10395840., 10413312.,
      10430784., 10448256., 11884896., 11904960., 11925024., 11945088.,
      10400712., 10418352., 10435992., 10453632., 8915928.,  8931120.,
      8946312.,  8961504.,  7430640.,  7443360.,  7456080.,  7468800.,
      8410185.,  8424630.,  8439075.,  8453520.,  10093383., 10110798.,
      10128213., 10145628., 11776716., 11797128., 11817540., 11837952.,
      13460076., 13483512., 13506948., 13530384., 11776149., 11796750.,
      11817351., 11837952., 10092411., 10110150., 10127889., 10145628.,
      8408970.,  8423820.,  8438670.,  8453520.,  7428840.,  7442160.,
      7455480.,  7468800.,  8913336.,  8929392.,  8945448.,  8961504.,
      10397184., 10416000., 10434816., 10453632., 11880288., 11901888.,
      11923488., 11945088., 10391304., 10410288., 10429272., 10448256.,
      8903256.,  8919600.,  8935944.,  8952288.,  7416240.,  7429920.,
      7443600.,  7457280.,  6450255.,  6462330.,  6474405.,  6486480.,
      7737177.,  7751730.,  7766283.,  7780836.,  9022860.,  9039912.,
      9056964.,  9074016.,  10307220., 10326792., 10346364., 10365936.,
      9013011.,  9030210.,  9047409.,  9064608.,  7720293.,  7735098.,
      7749903.,  7764708.,  6429150.,  6441540.,  6453930.,  6466320.,
      5478270.,  5488980.,  5499690.,  5510400.,  6569514.,  6582420.,
      6595326.,  6608232.,  7659120.,  7674240.,  7689360.,  7704480.,
      8747016.,  8764368.,  8781720.,  8799072.,  7646646.,  7661892.,
      7677138.,  7692384.,  6548130.,  6561252.,  6574374.,  6587496.,
      5451540.,  5462520.,  5473500.,  5484480.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      72867.,  74334.,  75801.,  77268.,  73497.,  74982.,  76467.,  77952.,
      74127.,  75630.,  77133.,  78636.,  74757.,  76278.,  77799.,  79320.,
      75387.,  76926.,  78465.,  80004.,  76017.,  77574.,  79131.,  80688.,
      76647.,  78222.,  79797.,  81372.,  77907.,  79518.,  81129.,  82740.,
      78537.,  80166.,  81795.,  83424.,  79167.,  80814.,  82461.,  84108.,
      79797.,  81462.,  83127.,  84792.,  80427.,  82110.,  83793.,  85476.,
      81057.,  82758.,  84459.,  86160.,  81687.,  83406.,  85125.,  86844.,
      82947.,  84702.,  86457.,  88212.,  83577.,  85350.,  87123.,  88896.,
      84207.,  85998.,  87789.,  89580.,  84837.,  86646.,  88455.,  90264.,
      85467.,  87294.,  89121.,  90948.,  86097.,  87942.,  89787.,  91632.,
      86727.,  88590.,  90453.,  92316.,  87987.,  89886.,  91785.,  93684.,
      88617.,  90534.,  92451.,  94368.,  89247.,  91182.,  93117.,  95052.,
      89877.,  91830.,  93783.,  95736.,  90507.,  92478.,  94449.,  96420.,
      91137.,  93126.,  95115.,  97104.,  91767.,  93774.,  95781.,  97788.,
      93027.,  95070.,  97113.,  99156.,  93657.,  95718.,  97779.,  99840.,
      94287.,  96366.,  98445.,  100524., 94917.,  97014.,  99111.,  101208.,
      95547.,  97662.,  99777.,  101892., 96177.,  98310.,  100443., 102576.,
      96807.,  98958.,  101109., 103260., 98067.,  100254., 102441., 104628.,
      98697.,  100902., 103107., 105312., 99327.,  101550., 103773., 105996.,
      99957.,  102198., 104439., 106680., 100587., 102846., 105105., 107364.,
      101217., 103494., 105771., 108048., 101847., 104142., 106437., 108732.,
      103107., 105438., 107769., 110100., 103737., 106086., 108435., 110784.,
      104367., 106734., 109101., 111468., 104997., 107382., 109767., 112152.,
      105627., 108030., 110433., 112836., 106257., 108678., 111099., 113520.,
      106887., 109326., 111765., 114204.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5445510.,  5484480.,  6540732.,  6587496.,  7637826.,  7692384.,
      8736720.,  8799072.,  7649922.,  7704480.,  6561468.,  6608232.,
      5471430.,  5510400.,  6420855.,  6466320.,  7710150.,  7764708.,
      9000957.,  9064608.,  10293192., 10365936., 9010365.,  9074016.,
      7726278.,  7780836.,  6441015.,  6486480.,  7405320.,  7457280.,
      8889936.,  8952288.,  10375512., 10448256., 11861952., 11945088.,
      10380888., 10453632., 8899152.,  8961504.,  7416840.,  7468800.,
      8395065.,  8453520.,  10075482., 10145628., 11756115., 11837952.,
      13436856., 13530384., 11756115., 11837952., 10075482., 10145628.,
      8395065.,  8453520.,  7416840.,  7468800.,  8899152.,  8961504.,
      10380888., 10453632., 11861952., 11945088., 10375512., 10448256.,
      8889936.,  8952288.,  7405320.,  7457280.,  6441015.,  6486480.,
      7726278.,  7780836.,  9010365.,  9074016.,  10293192., 10365936.,
      9000957.,  9064608.,  7710150.,  7764708.,  6420855.,  6466320.,
      5471430.,  5510400.,  6561468.,  6608232.,  7649922.,  7704480.,
      8736720.,  8799072.,  7637826.,  7692384.,  6540732.,  6587496.,
      5445510.,  5484480.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      74010.,  77268.,  74658.,  77952.,  75306.,  78636.,  75954.,  79320.,
      76602.,  80004.,  77250.,  80688.,  77898.,  81372.,  79194.,  82740.,
      79842.,  83424.,  80490.,  84108.,  81138.,  84792.,  81786.,  85476.,
      82434.,  86160.,  83082.,  86844.,  84378.,  88212.,  85026.,  88896.,
      85674.,  89580.,  86322.,  90264.,  86970.,  90948.,  87618.,  91632.,
      88266.,  92316.,  89562.,  93684.,  90210.,  94368.,  90858.,  95052.,
      91506.,  95736.,  92154.,  96420.,  92802.,  97104.,  93450.,  97788.,
      94746.,  99156.,  95394.,  99840.,  96042.,  100524., 96690.,  101208.,
      97338.,  101892., 97986.,  102576., 98634.,  103260., 99930.,  104628.,
      100578., 105312., 101226., 105996., 101874., 106680., 102522., 107364.,
      103170., 108048., 103818., 108732., 105114., 110100., 105762., 110784.,
      106410., 111468., 107058., 112152., 107706., 112836., 108354., 113520.,
      109002., 114204.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4627610.,  4644620.,  4684980.,  4702080.,  5540688.,  5561208.,
      5609532.,  5630160.,  6449282.,  6473348.,  6529600.,  6553792.,
      7353248.,  7380896.,  7445040.,  7472832.,  6415878.,  6440196.,
      6496196.,  6520640.,  5483424.,  5504376.,  5552268.,  5573328.,
      4556030.,  4573580.,  4613400.,  4631040.,  5496865.,  5517550.,
      5564650.,  5585440.,  6578712.,  6603660.,  6660054.,  6685128.,
      7654325.,  7683578.,  7749224.,  7778624.,  8723536.,  8757136.,
      8831992.,  8865760.,  7608335.,  7637882.,  7703234.,  7732928.,
      6499872.,  6525324.,  6581214.,  6606792.,  5398315.,  5419630.,
      5466100.,  5487520.,  6343160.,  6367760.,  6421360.,  6446080.,
      7588032.,  7617696.,  7681872.,  7711680.,  8824536.,  8859312.,
      8934016.,  8968960.,  10052480., 10092416., 10177600., 10217728.,
      8763272.,  8798384.,  8872752.,  8908032.,  7483008.,  7513248.,
      7576848.,  7607232.,  6211880.,  6237200.,  6290080.,  6315520.,
      7158815.,  7187570.,  7247430.,  7276320.,  8559432.,  8594100.,
      8665770.,  8700600.,  9949163.,  9989798.,  10073224., 10114048.,
      11327792., 11374448., 11469576., 11516448., 9869937.,  9910950.,
      9993998.,  10035200., 8423616.,  8458932.,  8529954.,  8565432.,
      6989045.,  7018610.,  7077660.,  7107360.,  6622840.,  6649360.,
      6703600.,  6730240.,  7917504.,  7949472.,  8014416.,  8046528.,
      9201752.,  9239216.,  9314816.,  9352448.,  10475392., 10518400.,
      10604608., 10647808., 9126152.,  9163952.,  9239216.,  9277184.,
      7787904.,  7820448.,  7884816.,  7917504.,  6460840.,  6488080.,
      6541600.,  6568960.,  6173825.,  6197870.,  6246730.,  6270880.,
      7381080.,  7410060.,  7468566.,  7497672.,  8578773.,  8612730.,
      8680840.,  8714944.,  9766736.,  9805712.,  9883384.,  9922528.,
      8509487.,  8543738.,  8611554.,  8645952.,  7262304.,  7291788.,
      7349790.,  7379400.,  6025355.,  6050030.,  6098260.,  6123040.,
      5069370.,  5090700.,  5131860.,  5153280.,  6056208.,  6081912.,
      6131196.,  6157008.,  7033698.,  7063812.,  7121184.,  7151424.,
      8001696.,  8036256.,  8101680.,  8136384.,  6966246.,  6996612.,
      7053732.,  7084224.,  5940576.,  5966712.,  6015564.,  6041808.,
      4924830.,  4946700.,  4987320.,  5009280.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      145104., 148020., 151602., 154536., 146364., 149316., 152934., 155904.,
      147624., 150612., 154266., 157272., 148884., 151908., 155598., 158640.,
      150144., 153204., 156930., 160008., 151404., 154500., 158262., 161376.,
      152664., 155796., 159594., 162744., 155184., 158388., 162258., 165480.,
      156444., 159684., 163590., 166848., 157704., 160980., 164922., 168216.,
      158964., 162276., 166254., 169584., 160224., 163572., 167586., 170952.,
      161484., 164868., 168918., 172320., 162744., 166164., 170250., 173688.,
      165264., 168756., 172914., 176424., 166524., 170052., 174246., 177792.,
      167784., 171348., 175578., 179160., 169044., 172644., 176910., 180528.,
      170304., 173940., 178242., 181896., 171564., 175236., 179574., 183264.,
      172824., 176532., 180906., 184632., 175344., 179124., 183570., 187368.,
      176604., 180420., 184902., 188736., 177864., 181716., 186234., 190104.,
      179124., 183012., 187566., 191472., 180384., 184308., 188898., 192840.,
      181644., 185604., 190230., 194208., 182904., 186900., 191562., 195576.,
      185424., 189492., 194226., 198312., 186684., 190788., 195558., 199680.,
      187944., 192084., 196890., 201048., 189204., 193380., 198222., 202416.,
      190464., 194676., 199554., 203784., 191724., 195972., 200886., 205152.,
      192984., 197268., 202218., 206520., 195504., 199860., 204882., 209256.,
      196764., 201156., 206214., 210624., 198024., 202452., 207546., 211992.,
      199284., 203748., 208878., 213360., 200544., 205044., 210210., 214728.,
      201804., 206340., 211542., 216096., 203064., 207636., 212874., 217464.,
      205584., 210228., 215538., 220200., 206844., 211524., 216870., 221568.,
      208104., 212820., 218202., 222936., 209364., 214116., 219534., 224304.,
      210624., 215412., 220866., 225672., 211884., 216708., 222198., 227040.,
      213144., 218004., 223530., 228408.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4507330.,  4524340.,  4541350.,  4558360.,  4601500.,  4618600.,
      4635700.,  4652800.,  5359224.,  5379744.,  5400264.,  5420784.,
      5472228.,  5492856.,  5513484.,  5534112.,  6193922.,  6217988.,
      6242054.,  6266120.,  6325760.,  6349952.,  6374144.,  6398336.,
      7011136.,  7038784.,  7066432.,  7094080.,  7161808.,  7189600.,
      7217392.,  7245184.,  6069518.,  6093836.,  6118154.,  6142472.,
      6201356.,  6225800.,  6250244.,  6274688.,  5145960.,  5166912.,
      5187864.,  5208816.,  5258964.,  5280024.,  5301084.,  5322144.,
      4240750.,  4258300.,  4275850.,  4293400.,  4334920.,  4352560.,
      4370200.,  4387840.,  5533045.,  5553730.,  5574415.,  5595100.,
      5645470.,  5666260.,  5687050.,  5707840.,  6576828.,  6601776.,
      6626724.,  6651672.,  6711738.,  6736812.,  6761886.,  6786960.,
      7598885.,  7628138.,  7657391.,  7686644.,  7756280.,  7785680.,
      7815080.,  7844480.,  8598880.,  8632480.,  8666080.,  8699680.,
      8778760.,  8812528.,  8846296.,  8880064.,  7442099.,  7471646.,
      7501193.,  7530740.,  7599494.,  7629188.,  7658882.,  7688576.,
      6308052.,  6333504.,  6358956.,  6384408.,  6442962.,  6468540.,
      6494118.,  6519696.,  5197075.,  5218390.,  5239705.,  5261020.,
      5309500.,  5330920.,  5352340.,  5373760.,  6471640.,  6496240.,
      6520840.,  6545440.,  6602320.,  6627040.,  6651760.,  6676480.,
      7687584.,  7717248.,  7746912.,  7776576.,  7844400.,  7874208.,
      7904016.,  7933824.,  8876504.,  8911280.,  8946056.,  8980832.,
      9059456.,  9094400.,  9129344.,  9164288.,  10038016., 10077952.,
      10117888., 10157824., 10247104., 10287232., 10327360., 10367488.,
      8681960.,  8717072.,  8752184.,  8787296.,  8864912.,  8900192.,
      8935472.,  8970752.,  7354080.,  7384320.,  7414560.,  7444800.,
      7510896.,  7541280.,  7571664.,  7602048.,  6054760.,  6080080.,
      6105400.,  6130720.,  6185440.,  6210880.,  6236320.,  6261760.,
      7307755.,  7336510.,  7365265.,  7394020.,  7456690.,  7485580.,
      7514470.,  7543360.,  8673060.,  8707728.,  8742396.,  8777064.,
      8851782.,  8886612.,  8921442.,  8956272.,  10005275., 10045910.,
      10086545., 10127180., 10213784., 10254608., 10295432., 10336256.,
      11303968., 11350624., 11397280., 11443936., 11542264., 11589136.,
      11636008., 11682880., 9767597.,  9808610.,  9849623.,  9890636.,
      9976106.,  10017308., 10058510., 10099712., 8265612.,  8300928.,
      8336244.,  8371560.,  8444334.,  8479812.,  8515290.,  8550768.,
      6798445.,  6828010.,  6857575.,  6887140.,  6947380.,  6977080.,
      7006780.,  7036480.,  7287640.,  7314160.,  7340680.,  7367200.,
      7426000.,  7452640.,  7479280.,  7505920.,  8657568.,  8689536.,
      8721504.,  8753472.,  8823600.,  8855712.,  8887824.,  8919936.,
      9997400.,  10034864., 10072328., 10109792., 10191104., 10228736.,
      10266368., 10304000., 11306752., 11349760., 11392768., 11435776.,
      11528128., 11571328., 11614528., 11657728., 9781352.,  9819152.,
      9856952.,  9894752.,  9975056.,  10013024., 10050992., 10088960.,
      8287200.,  8319744.,  8352288.,  8384832.,  8453232.,  8485920.,
      8518608.,  8551296.,  6824680.,  6851920.,  6879160.,  6906400.,
      6963040.,  6990400.,  7017760.,  7045120.,  7142165.,  7166210.,
      7190255.,  7214300.,  7267390.,  7291540.,  7315690.,  7339840.,
      8490876.,  8519856.,  8548836.,  8577816.,  8641146.,  8670252.,
      8699358.,  8728464.,  9812229.,  9846186.,  9880143.,  9914100.,
      9987544.,  10021648., 10055752., 10089856., 11105888., 11144864.,
      11183840., 11222816., 11306248., 11345392., 11384536., 11423680.,
      9616019.,  9650270.,  9684521.,  9718772.,  9791334.,  9825732.,
      9860130.,  9894528.,  8154516.,  8184000.,  8213484.,  8242968.,
      8304786.,  8334396.,  8364006.,  8393616.,  6721715.,  6746390.,
      6771065.,  6795740.,  6846940.,  6871720.,  6896500.,  6921280.,
      6477090.,  6498420.,  6519750.,  6541080.,  6586620.,  6608040.,
      6629460.,  6650880.,  7699896.,  7725600.,  7751304.,  7777008.,
      7831332.,  7857144.,  7882956.,  7908768.,  8897826.,  8927940.,
      8958054.,  8988168.,  9051168.,  9081408.,  9111648.,  9141888.,
      10070592., 10105152., 10139712., 10174272., 10245840., 10280544.,
      10315248., 10349952., 8719662.,  8750028.,  8780394.,  8810760.,
      8873004.,  8903496.,  8933988.,  8964480.,  7394472.,  7420608.,
      7446744.,  7472880.,  7525908.,  7552152.,  7578396.,  7604640.,
      6095310.,  6117180.,  6139050.,  6160920.,  6204840.,  6226800.,
      6248760.,  6270720.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      287292., 290208., 293124., 296040., 300270., 303204., 306138., 309072.,
      289776., 292728., 295680., 298632., 302898., 305868., 308838., 311808.,
      292260., 295248., 298236., 301224., 305526., 308532., 311538., 314544.,
      294744., 297768., 300792., 303816., 308154., 311196., 314238., 317280.,
      297228., 300288., 303348., 306408., 310782., 313860., 316938., 320016.,
      299712., 302808., 305904., 309000., 313410., 316524., 319638., 322752.,
      302196., 305328., 308460., 311592., 316038., 319188., 322338., 325488.,
      307164., 310368., 313572., 316776., 321294., 324516., 327738., 330960.,
      309648., 312888., 316128., 319368., 323922., 327180., 330438., 333696.,
      312132., 315408., 318684., 321960., 326550., 329844., 333138., 336432.,
      314616., 317928., 321240., 324552., 329178., 332508., 335838., 339168.,
      317100., 320448., 323796., 327144., 331806., 335172., 338538., 341904.,
      319584., 322968., 326352., 329736., 334434., 337836., 341238., 344640.,
      322068., 325488., 328908., 332328., 337062., 340500., 343938., 347376.,
      327036., 330528., 334020., 337512., 342318., 345828., 349338., 352848.,
      329520., 333048., 336576., 340104., 344946., 348492., 352038., 355584.,
      332004., 335568., 339132., 342696., 347574., 351156., 354738., 358320.,
      334488., 338088., 341688., 345288., 350202., 353820., 357438., 361056.,
      336972., 340608., 344244., 347880., 352830., 356484., 360138., 363792.,
      339456., 343128., 346800., 350472., 355458., 359148., 362838., 366528.,
      341940., 345648., 349356., 353064., 358086., 361812., 365538., 369264.,
      346908., 350688., 354468., 358248., 363342., 367140., 370938., 374736.,
      349392., 353208., 357024., 360840., 365970., 369804., 373638., 377472.,
      351876., 355728., 359580., 363432., 368598., 372468., 376338., 380208.,
      354360., 358248., 362136., 366024., 371226., 375132., 379038., 382944.,
      356844., 360768., 364692., 368616., 373854., 377796., 381738., 385680.,
      359328., 363288., 367248., 371208., 376482., 380460., 384438., 388416.,
      361812., 365808., 369804., 373800., 379110., 383124., 387138., 391152.,
      366780., 370848., 374916., 378984., 384366., 388452., 392538., 396624.,
      369264., 373368., 377472., 381576., 386994., 391116., 395238., 399360.,
      371748., 375888., 380028., 384168., 389622., 393780., 397938., 402096.,
      374232., 378408., 382584., 386760., 392250., 396444., 400638., 404832.,
      376716., 380928., 385140., 389352., 394878., 399108., 403338., 407568.,
      379200., 383448., 387696., 391944., 397506., 401772., 406038., 410304.,
      381684., 385968., 390252., 394536., 400134., 404436., 408738., 413040.,
      386652., 391008., 395364., 399720., 405390., 409764., 414138., 418512.,
      389136., 393528., 397920., 402312., 408018., 412428., 416838., 421248.,
      391620., 396048., 400476., 404904., 410646., 415092., 419538., 423984.,
      394104., 398568., 403032., 407496., 413274., 417756., 422238., 426720.,
      396588., 401088., 405588., 410088., 415902., 420420., 424938., 429456.,
      399072., 403608., 408144., 412680., 418530., 423084., 427638., 432192.,
      401556., 406128., 410700., 415272., 421158., 425748., 430338., 434928.,
      406524., 411168., 415812., 420456., 426414., 431076., 435738., 440400.,
      409008., 413688., 418368., 423048., 429042., 433740., 438438., 443136.,
      411492., 416208., 420924., 425640., 431670., 436404., 441138., 445872.,
      413976., 418728., 423480., 428232., 434298., 439068., 443838., 448608.,
      416460., 421248., 426036., 430824., 436926., 441732., 446538., 451344.,
      418944., 423768., 428592., 433416., 439554., 444396., 449238., 454080.,
      421428., 426288., 431148., 436008., 442182., 447060., 451938., 456816.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5223090.,  5264920.,  5306930.,  5349120.,  6279900.,  6330096.,
      6380508.,  6431136.,  7340102.,  7398664.,  7457478.,  7516544.,
      8403408.,  8470336.,  8537552.,  8605056.,  7359814.,  7418376.,
      7477190.,  7536256.,  6313692.,  6363888.,  6414300.,  6464928.,
      5265330.,  5307160.,  5349170.,  5391360.,  6577125.,  6626780.,
      6676645.,  6726720.,  7900758.,  7960344.,  8020182.,  8080272.,
      9226343.,  9295860.,  9365671.,  9435776.,  10553544., 10632992.,
      10712776., 10792896., 9235303.,  9304820.,  9374631.,  9444736.,
      7916118.,  7975704.,  8035542.,  8095632.,  6596325.,  6645980.,
      6695845.,  6745920.,  7831960.,  7886880.,  7942040.,  7997440.,
      9406416.,  9472320.,  9538512.,  9604992.,  10982664., 11059552.,
      11136776., 11214336., 12560320., 12648192., 12736448., 12825088.,
      10989832., 11066720., 11143944., 11221504., 9418704.,  9484608.,
      9550800.,  9617280.,  7847320.,  7902240.,  7957400.,  8012800.,
      9189835.,  9250020.,  9310475.,  9371200.,  11033418., 11105640.,
      11178186., 11251056., 12877865., 12962124., 13046761., 13131776.,
      14722744., 14819040., 14915768., 15012928., 12877865., 12962124.,
      13046761., 13131776., 11033418., 11105640., 11178186., 11251056.,
      9189835.,  9250020.,  9310475.,  9371200.,  7847320.,  7902240.,
      7957400.,  8012800.,  9418704.,  9484608.,  9550800.,  9617280.,
      10989832., 11066720., 11143944., 11221504., 12560320., 12648192.,
      12736448., 12825088., 10982664., 11059552., 11136776., 11214336.,
      9406416.,  9472320.,  9538512.,  9604992.,  7831960.,  7886880.,
      7942040.,  7997440.,  6596325.,  6645980.,  6695845.,  6745920.,
      7916118.,  7975704.,  8035542.,  8095632.,  9235303.,  9304820.,
      9374631.,  9444736.,  10553544., 10632992., 10712776., 10792896.,
      9226343.,  9295860.,  9365671.,  9435776.,  7900758.,  7960344.,
      8020182.,  8080272.,  6577125.,  6626780.,  6676645.,  6726720.,
      5265330.,  5307160.,  5349170.,  5391360.,  6313692.,  6363888.,
      6414300.,  6464928.,  7359814.,  7418376.,  7477190.,  7536256.,
      8403408.,  8470336.,  8537552.,  8605056.,  7340102.,  7398664.,
      7457478.,  7516544.,  6279900.,  6330096.,  6380508.,  6431136.,
      5223090.,  5264920.,  5306930.,  5349120.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      289578., 296040., 302538., 309072., 292098., 298632., 305202., 311808.,
      294618., 301224., 307866., 314544., 297138., 303816., 310530., 317280.,
      299658., 306408., 313194., 320016., 302178., 309000., 315858., 322752.,
      304698., 311592., 318522., 325488., 309738., 316776., 323850., 330960.,
      312258., 319368., 326514., 333696., 314778., 321960., 329178., 336432.,
      317298., 324552., 331842., 339168., 319818., 327144., 334506., 341904.,
      322338., 329736., 337170., 344640., 324858., 332328., 339834., 347376.,
      329898., 337512., 345162., 352848., 332418., 340104., 347826., 355584.,
      334938., 342696., 350490., 358320., 337458., 345288., 353154., 361056.,
      339978., 347880., 355818., 363792., 342498., 350472., 358482., 366528.,
      345018., 353064., 361146., 369264., 350058., 358248., 366474., 374736.,
      352578., 360840., 369138., 377472., 355098., 363432., 371802., 380208.,
      357618., 366024., 374466., 382944., 360138., 368616., 377130., 385680.,
      362658., 371208., 379794., 388416., 365178., 373800., 382458., 391152.,
      370218., 378984., 387786., 396624., 372738., 381576., 390450., 399360.,
      375258., 384168., 393114., 402096., 377778., 386760., 395778., 404832.,
      380298., 389352., 398442., 407568., 382818., 391944., 401106., 410304.,
      385338., 394536., 403770., 413040., 390378., 399720., 409098., 418512.,
      392898., 402312., 411762., 421248., 395418., 404904., 414426., 423984.,
      397938., 407496., 417090., 426720., 400458., 410088., 419754., 429456.,
      402978., 412680., 422418., 432192., 405498., 415272., 425082., 434928.,
      410538., 420456., 430410., 440400., 413058., 423048., 433074., 443136.,
      415578., 425640., 435738., 445872., 418098., 428232., 438402., 448608.,
      420618., 430824., 441066., 451344., 423138., 433416., 443730., 454080.,
      425658., 436008., 446394., 456816.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4918490.,  4937060.,  4981580.,  5000240.,  5045030.,  5063780.,
      5108840.,  5127680.,  5877204.,  5899704.,  5952912.,  5975520.,
      6029052.,  6051768.,  6105624.,  6128448.,  6826246.,  6852748.,
      6914572.,  6941200.,  7003402.,  7030156.,  7092736.,  7119616.,
      7765040.,  7795616.,  7865984.,  7896704.,  7967504.,  7998368.,
      8069600.,  8100608.,  6750478.,  6777484.,  6838804.,  6865936.,
      6927634.,  6954892.,  7016968.,  7044352.,  5747316.,  5770680.,
      5823024.,  5846496.,  5899164.,  5922744.,  5975736.,  5999424.,
      4756130.,  4775780.,  4819220.,  4838960.,  4882670.,  4902500.,
      4946480.,  4966400.,  6206105.,  6229450.,  6282270.,  6305720.,
      6358855.,  6382410.,  6435860.,  6459520.,  7408194.,  7436460.,
      7499592.,  7527984.,  7591494.,  7620012.,  7683900.,  7712544.,
      8595671.,  8628942.,  8702302.,  8735720.,  8809521.,  8843086.,
      8917328.,  8951040.,  9767864.,  9806224.,  9889728.,  9928256.,
      10012264., 10050960., 10135472., 10174336., 8483979.,  8517838.,
      8590610.,  8624616.,  8697829.,  8731982.,  8805636.,  8839936.,
      7216722.,  7245996.,  7308120.,  7337520.,  7400022.,  7429548.,
      7492428.,  7522080.,  5966765.,  5991370.,  6042930.,  6067640.,
      6119515.,  6144330.,  6196520.,  6221440.,  7215480.,  7241520.,
      7299600.,  7325760.,  7384200.,  7410480.,  7469280.,  7495680.,
      8612976.,  8644512.,  8713920.,  8745600.,  8815440.,  8847264.,
      8917536.,  8949504.,  9993480.,  10030608., 10111248., 10148544.,
      10229688., 10267152., 10348800., 10386432., 11356224., 11399040.,
      11490816., 11533824., 11626176., 11669376., 11762304., 11805696.,
      9863784.,  9901584.,  9981552.,  10019520., 10099992., 10138128.,
      10219104., 10257408., 8390640.,  8423328.,  8491584.,  8524416.,
      8593104.,  8626080.,  8695200.,  8728320.,  6937560.,  6965040.,
      7021680.,  7049280.,  7106280.,  7134000.,  7191360.,  7219200.,
      8348535.,  8377750.,  8440610.,  8469960.,  8533225.,  8562710.,
      8626380.,  8656000.,  9961566.,  9996948.,  10072056., 10107600.,
      10183194., 10218900., 10294980., 10330848., 11553689., 11595346.,
      11682594., 11724440., 11812255., 11854290., 11942672., 11984896.,
      13124040., 13172080., 13271360., 13319616., 13419544., 13468016.,
      13568592., 13617280., 11395237., 11437650., 11524142., 11566744.,
      11653803., 11696594., 11784220., 11827200., 9689934.,  9726612.,
      9800424.,  9837264.,  9911562.,  9948564.,  10023348., 10060512.,
      8008995.,  8039830.,  8101070.,  8132040.,  8193685.,  8224790.,
      8286840.,  8318080.,  7759480.,  7786800.,  7846160.,  7873600.,
      7933320.,  7960880.,  8020960.,  8048640.,  9259632.,  9292704.,
      9363648.,  9396864.,  9468240.,  9501600.,  9573408.,  9606912.,
      10740744., 10779664., 10862096., 10901184., 10984120., 11023376.,
      11106816., 11146240., 12202048., 12246912., 12340736., 12385792.,
      12480192., 12525440., 12620416., 12665856., 10596712., 10636304.,
      10718064., 10757824., 10840088., 10880016., 10962784., 11002880.,
      9012720.,  9046944.,  9116736.,  9151104.,  9221328.,  9255840.,
      9326496.,  9361152.,  7450840.,  7479600.,  7537520.,  7566400.,
      7624680.,  7653680.,  7712320.,  7741440.,  6757465.,  6782410.,
      6836190.,  6861240.,  6915335.,  6940490.,  6994900.,  7020160.,
      8060610.,  8090796.,  8155080.,  8185392.,  8250054.,  8280492.,
      8345532.,  8376096.,  9346071.,  9381582.,  9456286.,  9491944.,
      9567089.,  9602894.,  9678480.,  9714432.,  10613176., 10654096.,
      10739136., 10780224., 10865768., 10907024., 10993072., 11034496.,
      9212875.,  9248974.,  9323090.,  9359336.,  9433893.,  9470286.,
      9545284.,  9581824.,  7832274.,  7863468.,  7926744.,  7958064.,
      8021718.,  8053164.,  8117196.,  8148768.,  6472045.,  6498250.,
      6550770.,  6577080.,  6629915.,  6656330.,  6709480.,  6736000.,
      5864730.,  5886820.,  5932940.,  5955120.,  6001510.,  6023780.,
      6070440.,  6092800.,  6991188.,  7017912.,  7073040.,  7099872.,
      7155324.,  7182264.,  7238040.,  7265088.,  8100806.,  8132236.,
      8196300.,  8227856.,  8292298.,  8323980.,  8388800.,  8420608.,
      9193008.,  9229216.,  9302144.,  9338496.,  9411856.,  9448352.,
      9522144.,  9558784.,  7974862.,  8006796.,  8070356.,  8102416.,
      8166354.,  8198540.,  8262856.,  8295168.,  6775284.,  6802872.,
      6857136.,  6884832.,  6939420.,  6967224.,  7022136.,  7050048.,
      5594850.,  5618020.,  5663060.,  5686320.,  5731630.,  5754980.,
      5800560.,  5824000.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      573342., 579156., 586248., 592080., 599226., 605076., 612276., 618144.,
      578310., 584196., 591360., 597264., 604482., 610404., 617676., 623616.,
      583278., 589236., 596472., 602448., 609738., 615732., 623076., 629088.,
      588246., 594276., 601584., 607632., 614994., 621060., 628476., 634560.,
      593214., 599316., 606696., 612816., 620250., 626388., 633876., 640032.,
      598182., 604356., 611808., 618000., 625506., 631716., 639276., 645504.,
      603150., 609396., 616920., 623184., 630762., 637044., 644676., 650976.,
      613086., 619476., 627144., 633552., 641274., 647700., 655476., 661920.,
      618054., 624516., 632256., 638736., 646530., 653028., 660876., 667392.,
      623022., 629556., 637368., 643920., 651786., 658356., 666276., 672864.,
      627990., 634596., 642480., 649104., 657042., 663684., 671676., 678336.,
      632958., 639636., 647592., 654288., 662298., 669012., 677076., 683808.,
      637926., 644676., 652704., 659472., 667554., 674340., 682476., 689280.,
      642894., 649716., 657816., 664656., 672810., 679668., 687876., 694752.,
      652830., 659796., 668040., 675024., 683322., 690324., 698676., 705696.,
      657798., 664836., 673152., 680208., 688578., 695652., 704076., 711168.,
      662766., 669876., 678264., 685392., 693834., 700980., 709476., 716640.,
      667734., 674916., 683376., 690576., 699090., 706308., 714876., 722112.,
      672702., 679956., 688488., 695760., 704346., 711636., 720276., 727584.,
      677670., 684996., 693600., 700944., 709602., 716964., 725676., 733056.,
      682638., 690036., 698712., 706128., 714858., 722292., 731076., 738528.,
      692574., 700116., 708936., 716496., 725370., 732948., 741876., 749472.,
      697542., 705156., 714048., 721680., 730626., 738276., 747276., 754944.,
      702510., 710196., 719160., 726864., 735882., 743604., 752676., 760416.,
      707478., 715236., 724272., 732048., 741138., 748932., 758076., 765888.,
      712446., 720276., 729384., 737232., 746394., 754260., 763476., 771360.,
      717414., 725316., 734496., 742416., 751650., 759588., 768876., 776832.,
      722382., 730356., 739608., 747600., 756906., 764916., 774276., 782304.,
      732318., 740436., 749832., 757968., 767418., 775572., 785076., 793248.,
      737286., 745476., 754944., 763152., 772674., 780900., 790476., 798720.,
      742254., 750516., 760056., 768336., 777930., 786228., 795876., 804192.,
      747222., 755556., 765168., 773520., 783186., 791556., 801276., 809664.,
      752190., 760596., 770280., 778704., 788442., 796884., 806676., 815136.,
      757158., 765636., 775392., 783888., 793698., 802212., 812076., 820608.,
      762126., 770676., 780504., 789072., 798954., 807540., 817476., 826080.,
      772062., 780756., 790728., 799440., 809466., 818196., 828276., 837024.,
      777030., 785796., 795840., 804624., 814722., 823524., 833676., 842496.,
      781998., 790836., 800952., 809808., 819978., 828852., 839076., 847968.,
      786966., 795876., 806064., 814992., 825234., 834180., 844476., 853440.,
      791934., 800916., 811176., 820176., 830490., 839508., 849876., 858912.,
      796902., 805956., 816288., 825360., 835746., 844836., 855276., 864384.,
      801870., 810996., 821400., 830544., 841002., 850164., 860676., 869856.,
      811806., 821076., 831624., 840912., 851514., 860820., 871476., 880800.,
      816774., 826116., 836736., 846096., 856770., 866148., 876876., 886272.,
      821742., 831156., 841848., 851280., 862026., 871476., 882276., 891744.,
      826710., 836196., 846960., 856464., 867282., 876804., 887676., 897216.,
      831678., 841236., 852072., 861648., 872538., 882132., 893076., 902688.,
      836646., 846276., 857184., 866832., 877794., 887460., 898476., 908160.,
      841614., 851316., 862296., 872016., 883050., 892788., 903876., 913632.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4567850.,  4586420.,  4604990.,  4623560.,  4665780.,  4684440.,
      4703100.,  4721760.,  4764430.,  4783180.,  4801930.,  4820680.,
      4863800.,  4882640.,  4901480.,  4920320.,  5363652.,  5386152.,
      5408652.,  5431152.,  5481168.,  5503776.,  5526384.,  5548992.,
      5599548.,  5622264.,  5644980.,  5667696.,  5718792.,  5741616.,
      5764440.,  5787264.,  6117510.,  6144012.,  6170514.,  6197016.,
      6254612.,  6281240.,  6307868.,  6334496.,  6392722.,  6419476.,
      6446230.,  6472984.,  6531840.,  6558720.,  6585600.,  6612480.,
      6828272.,  6858848.,  6889424.,  6920000.,  6984960.,  7015680.,
      7046400.,  7077120.,  7142800.,  7173664.,  7204528.,  7235392.,
      7301792.,  7332800.,  7363808.,  7394816.,  5807774.,  5834780.,
      5861786.,  5888792.,  5944876.,  5972008.,  5999140.,  6026272.,
      6082986.,  6110244.,  6137502.,  6164760.,  6222104.,  6249488.,
      6276872.,  6304256.,  4832676.,  4856040.,  4879404.,  4902768.,
      4950192.,  4973664.,  4997136.,  5020608.,  5068572.,  5092152.,
      5115732.,  5139312.,  5187816.,  5211504.,  5235192.,  5258880.,
      3904130.,  3923780.,  3943430.,  3963080.,  4002060.,  4021800.,
      4041540.,  4061280.,  4100710.,  4120540.,  4140370.,  4160200.,
      4200080.,  4220000.,  4239920.,  4259840.,  6050305.,  6073650.,
      6096995.,  6120340.,  6171810.,  6195260.,  6218710.,  6242160.,
      6294155.,  6317710.,  6341265.,  6364820.,  6417340.,  6441000.,
      6464660.,  6488320.,  7108122.,  7136388.,  7164654.,  7192920.,
      7253928.,  7282320.,  7310712.,  7339104.,  7400742.,  7429260.,
      7457778.,  7486296.,  7548564.,  7577208.,  7605852.,  7634496.,
      8112055.,  8145326.,  8178597.,  8211868.,  8282162.,  8315580.,
      8348998.,  8382416.,  8453445.,  8487010.,  8520575.,  8554140.,
      8625904.,  8659616.,  8693328.,  8727040.,  9060760.,  9099120.,
      9137480.,  9175840.,  9255168.,  9293696.,  9332224.,  9370752.,
      9450920.,  9489616.,  9528312.,  9567008.,  9648016.,  9686880.,
      9725744.,  9764608.,  7716051.,  7749910.,  7783769.,  7817628.,
      7886158.,  7920164.,  7954170.,  7988176.,  8057441.,  8091594.,
      8125747.,  8159900.,  8229900.,  8264200.,  8298500.,  8332800.,
      6429258.,  6458532.,  6487806.,  6517080.,  6575064.,  6604464.,
      6633864.,  6663264.,  6721878.,  6751404.,  6780930.,  6810456.,
      6869700.,  6899352.,  6929004.,  6958656.,  5201725.,  5226330.,
      5250935.,  5275540.,  5323230.,  5347940.,  5372650.,  5397360.,
      5445575.,  5470390.,  5495205.,  5520020.,  5568760.,  5593680.,
      5618600.,  5643520.,  7083320.,  7109360.,  7135400.,  7161440.,
      7220720.,  7246880.,  7273040.,  7299200.,  7359080.,  7385360.,
      7411640.,  7437920.,  7498400.,  7524800.,  7551200.,  7577600.,
      8334768.,  8366304.,  8397840.,  8429376.,  8499648.,  8531328.,
      8563008.,  8594688.,  8665680.,  8697504.,  8729328.,  8761152.,
      8832864.,  8864832.,  8896800.,  8928768.,  9527560.,  9564688.,
      9601816.,  9638944.,  9719920.,  9757216.,  9794512.,  9831808.,
      9913624.,  9951088.,  9988552.,  10026016., 10108672., 10146304.,
      10183936., 10221568., 10660160., 10702976., 10745792., 10788608.,
      10880000., 10923008., 10966016., 11009024., 11101376., 11144576.,
      11187776., 11230976., 11324288., 11367680., 11411072., 11454464.,
      9095464.,  9133264.,  9171064.,  9208864.,  9287824.,  9325792.,
      9363760.,  9401728.,  9481528.,  9519664.,  9557800.,  9595936.,
      9676576.,  9714880.,  9753184.,  9791488.,  7594032.,  7626720.,
      7659408.,  7692096.,  7758912.,  7791744.,  7824576.,  7857408.,
      7924944.,  7957920.,  7990896.,  8023872.,  8092128.,  8125248.,
      8158368.,  8191488.,  6157400.,  6184880.,  6212360.,  6239840.,
      6294800.,  6322400.,  6350000.,  6377600.,  6433160.,  6460880.,
      6488600.,  6516320.,  6572480.,  6600320.,  6628160.,  6656000.,
      8363215.,  8392430.,  8421645.,  8450860.,  8516510.,  8545860.,
      8575210.,  8604560.,  8670885.,  8700370.,  8729855.,  8759340.,
      8826340.,  8855960.,  8885580.,  8915200.,  9848454.,  9883836.,
      9919218.,  9954600.,  10032408., 10067952., 10103496., 10139040.,
      10217658., 10253364., 10289070., 10324776., 10404204., 10440072.,
      10475940., 10511808., 11267193., 11308850., 11350507., 11392164.,
      11481806., 11523652., 11565498., 11607344., 11697931., 11739966.,
      11782001., 11824036., 11915568., 11957792., 12000016., 12042240.,
      12617704., 12665744., 12713784., 12761824., 12862976., 12911232.,
      12959488., 13007744., 13109976., 13158448., 13206920., 13255392.,
      13358704., 13407392., 13456080., 13504768., 10777501., 10819914.,
      10862327., 10904740., 10992114., 11034716., 11077318., 11119920.,
      11208239., 11251030., 11293821., 11336612., 11425876., 11468856.,
      11511836., 11554816., 9008982.,  9045660.,  9082338.,  9119016.,
      9192936.,  9229776.,  9266616.,  9303456.,  9378186.,  9415188.,
      9452190.,  9489192.,  9564732.,  9601896.,  9639060.,  9676224.,
      7313875.,  7344710.,  7375545.,  7406380.,  7467170.,  7498140.,
      7529110.,  7560080.,  7621545.,  7652650.,  7683755.,  7714860.,
      7777000.,  7808240.,  7839480.,  7870720.,  7514680.,  7542000.,
      7569320.,  7596640.,  7657200.,  7684640.,  7712080.,  7739520.,
      7800680.,  7828240.,  7855800.,  7883360.,  7945120.,  7972800.,
      8000480.,  8028160.,  8840112.,  8873184.,  8906256.,  8939328.,
      9011136.,  9044352.,  9077568.,  9110784.,  9183312.,  9216672.,
      9250032.,  9283392.,  9356640.,  9390144.,  9423648.,  9457152.,
      10102792., 10141712., 10180632., 10219552., 10302320., 10341408.,
      10380496., 10419584., 10503192., 10542448., 10581704., 10620960.,
      10705408., 10744832., 10784256., 10823680., 11301184., 11346048.,
      11390912., 11435776., 11529216., 11574272., 11619328., 11664384.,
      11758784., 11804032., 11849280., 11894528., 11989888., 12035328.,
      12080768., 12126208., 9642024.,  9681616.,  9721208.,  9760800.,
      9841552.,  9881312.,  9921072.,  9960832.,  10042424., 10082352.,
      10122280., 10162208., 10244640., 10284736., 10324832., 10364928.,
      8050224.,  8084448.,  8118672.,  8152896.,  8221248.,  8255616.,
      8289984.,  8324352.,  8393424.,  8427936.,  8462448.,  8496960.,
      8566752.,  8601408.,  8636064.,  8670720.,  6527320.,  6556080.,
      6584840.,  6613600.,  6669840.,  6698720.,  6727600.,  6756480.,
      6813320.,  6842320.,  6871320.,  6900320.,  6957760.,  6986880.,
      7016000.,  7045120.,  6601025.,  6625970.,  6650915.,  6675860.,
      6730210.,  6755260.,  6780310.,  6805360.,  6860235.,  6885390.,
      6910545.,  6935700.,  6991100.,  7016360.,  7041620.,  7066880.,
      7756698.,  7786884.,  7817070.,  7847256.,  7911720.,  7942032.,
      7972344.,  8002656.,  8067750.,  8098188.,  8128626.,  8159064.,
      8224788.,  8255352.,  8285916.,  8316480.,  8854391.,  8889902.,
      8925413.,  8960924.,  9035250.,  9070908.,  9106566.,  9142224.,
      9217285.,  9253090.,  9288895.,  9324700.,  9400496.,  9436448.,
      9472400.,  9508352.,  9892760.,  9933680.,  9974600.,  10015520.,
      10099456., 10140544., 10181632., 10222720., 10307496., 10348752.,
      10390008., 10431264., 10516880., 10558304., 10599728., 10641152.,
      8429715.,  8465814.,  8501913.,  8538012.,  8610574.,  8646820.,
      8683066.,  8719312.,  8792609.,  8829002.,  8865395.,  8901788.,
      8975820.,  9012360.,  9048900.,  9085440.,  7028682.,  7059876.,
      7091070.,  7122264.,  7183704.,  7215024.,  7246344.,  7277664.,
      7339734.,  7371180.,  7402626.,  7434072.,  7496772.,  7528344.,
      7559916.,  7591488.,  5691005.,  5717210.,  5743415.,  5769620.,
      5820190.,  5846500.,  5872810.,  5899120.,  5950215.,  5976630.,
      6003045.,  6029460.,  6081080.,  6107600.,  6134120.,  6160640.,
      6175210.,  6197300.,  6219390.,  6241480.,  6288500.,  6310680.,
      6332860.,  6355040.,  6402510.,  6424780.,  6447050.,  6469320.,
      6517240.,  6539600.,  6561960.,  6584320.,  7261764.,  7288488.,
      7315212.,  7341936.,  7397712.,  7424544.,  7451376.,  7478208.,
      7534524.,  7561464.,  7588404.,  7615344.,  7672200.,  7699248.,
      7726296.,  7753344.,  8296134.,  8327564.,  8358994.,  8390424.,
      8454740.,  8486296.,  8517852.,  8549408.,  8614354.,  8646036.,
      8677718.,  8709400.,  8774976.,  8806784.,  8838592.,  8870400.,
      9277168.,  9313376.,  9349584.,  9385792.,  9458432.,  9494784.,
      9531136.,  9567488.,  9640848.,  9677344.,  9713840.,  9750336.,
      9824416.,  9861056.,  9897696.,  9934336.,  7914718.,  7946652.,
      7978586.,  8010520.,  8073324.,  8105384.,  8137444.,  8169504.,
      8232938.,  8265124.,  8297310.,  8329496.,  8393560.,  8425872.,
      8458184.,  8490496.,  6607908.,  6635496.,  6663084.,  6690672.,
      6743856.,  6771552.,  6799248.,  6826944.,  6880668.,  6908472.,
      6936276.,  6964080.,  7018344.,  7046256.,  7074168.,  7102080.,
      5357890.,  5381060.,  5404230.,  5427400.,  5471180.,  5494440.,
      5517700.,  5540960.,  5585190.,  5608540.,  5631890.,  5655240.,
      5699920.,  5723360.,  5746800.,  5770240.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1140870., 1146684., 1152498., 1158312., 1166664., 1172496., 1178328.,
      1184160., 1192602., 1198452., 1204302., 1210152., 1218684., 1224552.,
      1230420., 1236288., 1150734., 1156620., 1162506., 1168392., 1176816.,
      1182720., 1188624., 1194528., 1203042., 1208964., 1214886., 1220808.,
      1229412., 1235352., 1241292., 1247232., 1160598., 1166556., 1172514.,
      1178472., 1186968., 1192944., 1198920., 1204896., 1213482., 1219476.,
      1225470., 1231464., 1240140., 1246152., 1252164., 1258176., 1170462.,
      1176492., 1182522., 1188552., 1197120., 1203168., 1209216., 1215264.,
      1223922., 1229988., 1236054., 1242120., 1250868., 1256952., 1263036.,
      1269120., 1180326., 1186428., 1192530., 1198632., 1207272., 1213392.,
      1219512., 1225632., 1234362., 1240500., 1246638., 1252776., 1261596.,
      1267752., 1273908., 1280064., 1190190., 1196364., 1202538., 1208712.,
      1217424., 1223616., 1229808., 1236000., 1244802., 1251012., 1257222.,
      1263432., 1272324., 1278552., 1284780., 1291008., 1200054., 1206300.,
      1212546., 1218792., 1227576., 1233840., 1240104., 1246368., 1255242.,
      1261524., 1267806., 1274088., 1283052., 1289352., 1295652., 1301952.,
      1219782., 1226172., 1232562., 1238952., 1247880., 1254288., 1260696.,
      1267104., 1276122., 1282548., 1288974., 1295400., 1304508., 1310952.,
      1317396., 1323840., 1229646., 1236108., 1242570., 1249032., 1258032.,
      1264512., 1270992., 1277472., 1286562., 1293060., 1299558., 1306056.,
      1315236., 1321752., 1328268., 1334784., 1239510., 1246044., 1252578.,
      1259112., 1268184., 1274736., 1281288., 1287840., 1297002., 1303572.,
      1310142., 1316712., 1325964., 1332552., 1339140., 1345728., 1249374.,
      1255980., 1262586., 1269192., 1278336., 1284960., 1291584., 1298208.,
      1307442., 1314084., 1320726., 1327368., 1336692., 1343352., 1350012.,
      1356672., 1259238., 1265916., 1272594., 1279272., 1288488., 1295184.,
      1301880., 1308576., 1317882., 1324596., 1331310., 1338024., 1347420.,
      1354152., 1360884., 1367616., 1269102., 1275852., 1282602., 1289352.,
      1298640., 1305408., 1312176., 1318944., 1328322., 1335108., 1341894.,
      1348680., 1358148., 1364952., 1371756., 1378560., 1278966., 1285788.,
      1292610., 1299432., 1308792., 1315632., 1322472., 1329312., 1338762.,
      1345620., 1352478., 1359336., 1368876., 1375752., 1382628., 1389504.,
      1298694., 1305660., 1312626., 1319592., 1329096., 1336080., 1343064.,
      1350048., 1359642., 1366644., 1373646., 1380648., 1390332., 1397352.,
      1404372., 1411392., 1308558., 1315596., 1322634., 1329672., 1339248.,
      1346304., 1353360., 1360416., 1370082., 1377156., 1384230., 1391304.,
      1401060., 1408152., 1415244., 1422336., 1318422., 1325532., 1332642.,
      1339752., 1349400., 1356528., 1363656., 1370784., 1380522., 1387668.,
      1394814., 1401960., 1411788., 1418952., 1426116., 1433280., 1328286.,
      1335468., 1342650., 1349832., 1359552., 1366752., 1373952., 1381152.,
      1390962., 1398180., 1405398., 1412616., 1422516., 1429752., 1436988.,
      1444224., 1338150., 1345404., 1352658., 1359912., 1369704., 1376976.,
      1384248., 1391520., 1401402., 1408692., 1415982., 1423272., 1433244.,
      1440552., 1447860., 1455168., 1348014., 1355340., 1362666., 1369992.,
      1379856., 1387200., 1394544., 1401888., 1411842., 1419204., 1426566.,
      1433928., 1443972., 1451352., 1458732., 1466112., 1357878., 1365276.,
      1372674., 1380072., 1390008., 1397424., 1404840., 1412256., 1422282.,
      1429716., 1437150., 1444584., 1454700., 1462152., 1469604., 1477056.,
      1377606., 1385148., 1392690., 1400232., 1410312., 1417872., 1425432.,
      1432992., 1443162., 1450740., 1458318., 1465896., 1476156., 1483752.,
      1491348., 1498944., 1387470., 1395084., 1402698., 1410312., 1420464.,
      1428096., 1435728., 1443360., 1453602., 1461252., 1468902., 1476552.,
      1486884., 1494552., 1502220., 1509888., 1397334., 1405020., 1412706.,
      1420392., 1430616., 1438320., 1446024., 1453728., 1464042., 1471764.,
      1479486., 1487208., 1497612., 1505352., 1513092., 1520832., 1407198.,
      1414956., 1422714., 1430472., 1440768., 1448544., 1456320., 1464096.,
      1474482., 1482276., 1490070., 1497864., 1508340., 1516152., 1523964.,
      1531776., 1417062., 1424892., 1432722., 1440552., 1450920., 1458768.,
      1466616., 1474464., 1484922., 1492788., 1500654., 1508520., 1519068.,
      1526952., 1534836., 1542720., 1426926., 1434828., 1442730., 1450632.,
      1461072., 1468992., 1476912., 1484832., 1495362., 1503300., 1511238.,
      1519176., 1529796., 1537752., 1545708., 1553664., 1436790., 1444764.,
      1452738., 1460712., 1471224., 1479216., 1487208., 1495200., 1505802.,
      1513812., 1521822., 1529832., 1540524., 1548552., 1556580., 1564608.,
      1456518., 1464636., 1472754., 1480872., 1491528., 1499664., 1507800.,
      1515936., 1526682., 1534836., 1542990., 1551144., 1561980., 1570152.,
      1578324., 1586496., 1466382., 1474572., 1482762., 1490952., 1501680.,
      1509888., 1518096., 1526304., 1537122., 1545348., 1553574., 1561800.,
      1572708., 1580952., 1589196., 1597440., 1476246., 1484508., 1492770.,
      1501032., 1511832., 1520112., 1528392., 1536672., 1547562., 1555860.,
      1564158., 1572456., 1583436., 1591752., 1600068., 1608384., 1486110.,
      1494444., 1502778., 1511112., 1521984., 1530336., 1538688., 1547040.,
      1558002., 1566372., 1574742., 1583112., 1594164., 1602552., 1610940.,
      1619328., 1495974., 1504380., 1512786., 1521192., 1532136., 1540560.,
      1548984., 1557408., 1568442., 1576884., 1585326., 1593768., 1604892.,
      1613352., 1621812., 1630272., 1505838., 1514316., 1522794., 1531272.,
      1542288., 1550784., 1559280., 1567776., 1578882., 1587396., 1595910.,
      1604424., 1615620., 1624152., 1632684., 1641216., 1515702., 1524252.,
      1532802., 1541352., 1552440., 1561008., 1569576., 1578144., 1589322.,
      1597908., 1606494., 1615080., 1626348., 1634952., 1643556., 1652160.,
      1535430., 1544124., 1552818., 1561512., 1572744., 1581456., 1590168.,
      1598880., 1610202., 1618932., 1627662., 1636392., 1647804., 1656552.,
      1665300., 1674048., 1545294., 1554060., 1562826., 1571592., 1582896.,
      1591680., 1600464., 1609248., 1620642., 1629444., 1638246., 1647048.,
      1658532., 1667352., 1676172., 1684992., 1555158., 1563996., 1572834.,
      1581672., 1593048., 1601904., 1610760., 1619616., 1631082., 1639956.,
      1648830., 1657704., 1669260., 1678152., 1687044., 1695936., 1565022.,
      1573932., 1582842., 1591752., 1603200., 1612128., 1621056., 1629984.,
      1641522., 1650468., 1659414., 1668360., 1679988., 1688952., 1697916.,
      1706880., 1574886., 1583868., 1592850., 1601832., 1613352., 1622352.,
      1631352., 1640352., 1651962., 1660980., 1669998., 1679016., 1690716.,
      1699752., 1708788., 1717824., 1584750., 1593804., 1602858., 1611912.,
      1623504., 1632576., 1641648., 1650720., 1662402., 1671492., 1680582.,
      1689672., 1701444., 1710552., 1719660., 1728768., 1594614., 1603740.,
      1612866., 1621992., 1633656., 1642800., 1651944., 1661088., 1672842.,
      1682004., 1691166., 1700328., 1712172., 1721352., 1730532., 1739712.,
      1614342., 1623612., 1632882., 1642152., 1653960., 1663248., 1672536.,
      1681824., 1693722., 1703028., 1712334., 1721640., 1733628., 1742952.,
      1752276., 1761600., 1624206., 1633548., 1642890., 1652232., 1664112.,
      1673472., 1682832., 1692192., 1704162., 1713540., 1722918., 1732296.,
      1744356., 1753752., 1763148., 1772544., 1634070., 1643484., 1652898.,
      1662312., 1674264., 1683696., 1693128., 1702560., 1714602., 1724052.,
      1733502., 1742952., 1755084., 1764552., 1774020., 1783488., 1643934.,
      1653420., 1662906., 1672392., 1684416., 1693920., 1703424., 1712928.,
      1725042., 1734564., 1744086., 1753608., 1765812., 1775352., 1784892.,
      1794432., 1653798., 1663356., 1672914., 1682472., 1694568., 1704144.,
      1713720., 1723296., 1735482., 1745076., 1754670., 1764264., 1776540.,
      1786152., 1795764., 1805376., 1663662., 1673292., 1682922., 1692552.,
      1704720., 1714368., 1724016., 1733664., 1745922., 1755588., 1765254.,
      1774920., 1787268., 1796952., 1806636., 1816320., 1673526., 1683228.,
      1692930., 1702632., 1714872., 1724592., 1734312., 1744032., 1756362.,
      1766100., 1775838., 1785576., 1797996., 1807752., 1817508., 1827264.};
  const std::array<int, 4> in_shape = {{3, 9, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2081394., 2430288., 2779704., 3129624., 2783592., 2437092., 2090142.,
      2453808., 2864442., 3275496., 3686949., 3278520., 2869734., 2460612.,
      2829624., 3302376., 3775392., 4248648., 3777120., 3305400., 2833512.,
      3207384., 3742389., 4277448., 4812534., 4277448., 3742389., 3207384.,
      2833512., 3305400., 3777120., 4248648., 3775392., 3302376., 2829624.,
      2460612., 2869734., 3278520., 3686949., 3275496., 2864442., 2453808.,
      2090142., 2437092., 2783592., 3129624., 2779704., 2430288., 2081394.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      48402., 48780., 49158., 49536., 49914., 50292., 50670., 51804., 52182.,
      52560., 52938., 53316., 53694., 54072., 55206., 55584., 55962., 56340.,
      56718., 57096., 57474., 58608., 58986., 59364., 59742., 60120., 60498.,
      60876., 62010., 62388., 62766., 63144., 63522., 63900., 64278., 65412.,
      65790., 66168., 66546., 66924., 67302., 67680., 68814., 69192., 69570.,
      69948., 70326., 70704., 71082.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4151232., 4162788., 4847031., 4860576., 5543856., 5559408., 6241671.,
      6259248., 5551488., 5567184., 4860387., 4874184., 4168404., 4180284.,
      4893567., 4907616., 5712420., 5728884., 6532092., 6550992., 7352541.,
      7373898., 6537972., 6557040., 5722710., 5739468., 4906797., 4921224.,
      5642544., 5659248., 6585180., 6604752., 7528320., 7550784., 8471916.,
      8497296., 7531584., 7554240., 6590892., 6610800., 5649888., 5667024.,
      6395247., 6414768., 7461909., 7484778., 8528652., 8554896., 9595422.,
      9625068., 8528436., 8554896., 7461531., 7484778., 6394761., 6414768.,
      5649024., 5667024., 6589716., 6610800., 7530048., 7554240., 8469972.,
      8497296., 7526400., 7550784., 6583332., 6604752., 5640816., 5659248.,
      4904907., 4921224., 5720358., 5739468., 6535116., 6557040., 7349139.,
      7373898., 6528900., 6550992., 5709480., 5728884., 4890921., 4907616.,
      4165812., 4180284., 4857237., 4874184., 5547744., 5567184., 6237297.,
      6259248., 5539824., 5559408., 4843377., 4860576., 4147992., 4162788.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      94320.,  96804.,  95049.,  97560.,  95778.,  98316.,  96507.,  99072.,
      97236.,  99828.,  97965.,  100584., 98694.,  101340., 100881., 103608.,
      101610., 104364., 102339., 105120., 103068., 105876., 103797., 106632.,
      104526., 107388., 105255., 108144., 107442., 110412., 108171., 111168.,
      108900., 111924., 109629., 112680., 110358., 113436., 111087., 114192.,
      111816., 114948., 114003., 117216., 114732., 117972., 115461., 118728.,
      116190., 119484., 116919., 120240., 117648., 120996., 118377., 121752.,
      120564., 124020., 121293., 124776., 122022., 125532., 122751., 126288.,
      123480., 127044., 124209., 127800., 124938., 128556., 127125., 130824.,
      127854., 131580., 128583., 132336., 129312., 133092., 130041., 133848.,
      130770., 134604., 131499., 135360., 133686., 137628., 134415., 138384.,
      135144., 139140., 135873., 139896., 136602., 140652., 137331., 141408.,
      138060., 142164.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3400284., 3411840., 3423396., 3434952., 3956869., 3970414., 3983959.,
      3997504., 4561568., 4577120., 4592672., 4608224., 5163621., 5181198.,
      5198775., 5216352., 4588464., 4604160., 4619856., 4635552., 4016609.,
      4030406., 4044203., 4058000., 3448128., 3460008., 3471888., 3483768.,
      4097565., 4111614., 4125663., 4139712., 4767224., 4783688., 4800152.,
      4816616., 5488676., 5507576., 5526476., 5545376., 6206541., 6227898.,
      6249255., 6270612., 5512556., 5531624., 5550692., 5569760., 4822838.,
      4839596., 4856354., 4873112., 4137471., 4151898., 4166325., 4180752.,
      4780320., 4797024., 4813728., 4830432., 5559876., 5579448., 5599020.,
      5618592., 6394688., 6417152., 6439616., 6462080., 7224756., 7250136.,
      7275516., 7300896., 6413824., 6436480., 6459136., 6481792., 5608340.,
      5628248., 5648156., 5668064., 4808400., 4825536., 4842672., 4859808.,
      5442717., 5462238., 5481759., 5501280., 6328021., 6350890., 6373759.,
      6396628., 7271828., 7298072., 7324316., 7350560., 8209518., 8239164.,
      8268810., 8298456., 7284492., 7310952., 7337412., 7363872., 6366311.,
      6389558., 6412805., 6436052., 5455083., 5475090., 5495097., 5515104.,
      4858032., 4876032., 4894032., 4912032., 5646284., 5667368., 5688452.,
      5709536., 6497792., 6521984., 6546176., 6570368., 7343340., 7370664.,
      7397988., 7425312., 6516416., 6540800., 6565184., 6589568., 5696156.,
      5717576., 5738996., 5760416., 4882656., 4901088., 4919520., 4937952.,
      4333017., 4349334., 4365651., 4381968., 5034918., 5054028., 5073138.,
      5092248., 5805044., 5826968., 5848892., 5870816., 6569583., 6594342.,
      6619101., 6643860., 5831356., 5853448., 5875540., 5897632., 5099396.,
      5118800., 5138204., 5157608., 4373787., 4390482., 4407177., 4423872.,
      3873504., 3887976., 3902448., 3916920., 4500727., 4517674., 4534621.,
      4551568., 5201360., 5220800., 5240240., 5259680., 5896995., 5918946.,
      5940897., 5962848., 5237088., 5256672., 5276256., 5295840., 4582835.,
      4600034., 4617233., 4634432., 3934308., 3949104., 3963900., 3978696.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      186156., 188640., 191124., 193608., 187587., 190098., 192609., 195120.,
      189018., 191556., 194094., 196632., 190449., 193014., 195579., 198144.,
      191880., 194472., 197064., 199656., 193311., 195930., 198549., 201168.,
      194742., 197388., 200034., 202680., 199035., 201762., 204489., 207216.,
      200466., 203220., 205974., 208728., 201897., 204678., 207459., 210240.,
      203328., 206136., 208944., 211752., 204759., 207594., 210429., 213264.,
      206190., 209052., 211914., 214776., 207621., 210510., 213399., 216288.,
      211914., 214884., 217854., 220824., 213345., 216342., 219339., 222336.,
      214776., 217800., 220824., 223848., 216207., 219258., 222309., 225360.,
      217638., 220716., 223794., 226872., 219069., 222174., 225279., 228384.,
      220500., 223632., 226764., 229896., 224793., 228006., 231219., 234432.,
      226224., 229464., 232704., 235944., 227655., 230922., 234189., 237456.,
      229086., 232380., 235674., 238968., 230517., 233838., 237159., 240480.,
      231948., 235296., 238644., 241992., 233379., 236754., 240129., 243504.,
      237672., 241128., 244584., 248040., 239103., 242586., 246069., 249552.,
      240534., 244044., 247554., 251064., 241965., 245502., 249039., 252576.,
      243396., 246960., 250524., 254088., 244827., 248418., 252009., 255600.,
      246258., 249876., 253494., 257112., 250551., 254250., 257949., 261648.,
      251982., 255708., 259434., 263160., 253413., 257166., 260919., 264672.,
      254844., 258624., 262404., 266184., 256275., 260082., 263889., 267696.,
      257706., 261540., 265374., 269208., 259137., 262998., 266859., 270720.,
      263430., 267372., 271314., 275256., 264861., 268830., 272799., 276768.,
      266292., 270288., 274284., 278280., 267723., 271746., 275769., 279792.,
      269154., 273204., 277254., 281304., 270585., 274662., 278739., 282816.,
      272016., 276120., 280224., 284328.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1682516., 1709512., 1959566., 1990976., 2288112., 2324192., 2617650.,
      2658400., 2329264., 2365344., 2041054., 2072464., 1765636., 1792632.,
      2125070., 2156224., 2477891., 2514152., 2886920., 2928544., 3297033.,
      3344020., 2937928., 2979552., 2578931., 2615192., 2228062., 2259216.,
      2608880., 2644192., 3043592., 3084704., 3539008., 3586176., 4035384.,
      4088608., 3598144., 3645312., 3161160., 3202272., 2727856., 2763168.,
      3128114., 3167584., 3649865., 3695828., 4236600., 4289312., 4823955.,
      4883416., 4236600., 4289312., 3649865., 3695828., 3128114., 3167584.,
      2727856., 2763168., 3161160., 3202272., 3598144., 3645312., 4035384.,
      4088608., 3539008., 3586176., 3043592., 3084704., 2608880., 2644192.,
      2228062., 2259216., 2578931., 2615192., 2937928., 2979552., 3297033.,
      3344020., 2886920., 2928544., 2477891., 2514152., 2125070., 2156224.,
      1765636., 1792632., 2041054., 2072464., 2329264., 2365344., 2617650.,
      2658400., 2288112., 2324192., 1959566., 1990976., 1682516., 1709512.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      187911., 193608., 189369., 195120., 190827., 196632., 192285., 198144.,
      193743., 199656., 195201., 201168., 196659., 202680., 201033., 207216.,
      202491., 208728., 203949., 210240., 205407., 211752., 206865., 213264.,
      208323., 214776., 209781., 216288., 214155., 220824., 215613., 222336.,
      217071., 223848., 218529., 225360., 219987., 226872., 221445., 228384.,
      222903., 229896., 227277., 234432., 228735., 235944., 230193., 237456.,
      231651., 238968., 233109., 240480., 234567., 241992., 236025., 243504.,
      240399., 248040., 241857., 249552., 243315., 251064., 244773., 252576.,
      246231., 254088., 247689., 255600., 249147., 257112., 253521., 261648.,
      254979., 263160., 256437., 264672., 257895., 266184., 259353., 267696.,
      260811., 269208., 262269., 270720., 266643., 275256., 268101., 276768.,
      269559., 278280., 271017., 279792., 272475., 281304., 273933., 282816.,
      275391., 284328.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6772428.,  6795432.,  6846792.,  6869904.,  7881160.,  7908124.,
      7967918.,  7995008.,  9085680.,  9116640.,  9185344.,  9216448.,
      10284980., 10319972., 10397550., 10432704., 9139536.,  9170784.,
      9239712.,  9271104.,  8000624.,  8028092.,  8088406.,  8116000.,
      6868388.,  6892040.,  6943776.,  6967536.,  8162520.,  8190492.,
      8251326.,  8279424.,  9496697.,  9529478.,  9600304.,  9633232.,
      10934032., 10971664., 11052952., 11090752., 12364277., 12406802.,
      12498510., 12541224., 10981952., 11019920., 11101384., 11139520.,
      9608077.,  9641446.,  9712708.,  9746224.,  8242820.,  8271548.,
      8332650.,  8361504.,  9524208.,  9557472.,  9627456.,  9660864.,
      11077584., 11116560., 11198040., 11237184., 12741056., 12785792.,
      12879232., 12924160., 14395136., 14445680., 14551032., 14601792.,
      12779584., 12824704., 12918272., 12963584., 11174832., 11214480.,
      11296312., 11336128., 9581072.,  9615200.,  9685344.,  9719616.,
      10845828., 10884708., 10963518., 11002560., 12610213., 12655762.,
      12747518., 12793256., 14491200., 14543472., 14648632., 14701120.,
      16360061., 16419110., 16537620., 16596912., 14516880., 14569584.,
      14674824., 14727744., 12687281., 12733586., 12825610., 12872104.,
      10871480., 10911332., 10990194., 11030208., 9681744.,  9717600.,
      9788064.,  9824064.,  11252864., 11294864., 11376904., 11419072.,
      12950080., 12998272., 13092352., 13140736., 14635472., 14689904.,
      14795976., 14850624., 12987584., 13036160., 13130368., 13179136.,
      11352928., 11395600., 11477992., 11520832., 9731696.,  9768416.,
      9839040.,  9875904.,  8636352.,  8668860.,  8731302.,  8763936.,
      10035501., 10073574., 10146276., 10184496., 11570672., 11614352.,
      11697784., 11741632., 13094753., 13144082., 13238202., 13287720.,
      11623456., 11667472., 11751080., 11795264., 10164609., 10203270.,
      10276408., 10315216., 8718380.,  8751644.,  8814354.,  8847744.,
      7721316.,  7750152.,  7804896.,  7833840.,  8971732.,  9005500.,
      9069242.,  9103136.,  10368528., 10407264., 10480480., 10519360.,
      11755400., 11799140., 11881794., 11925696., 10440048., 10479072.,
      10552512., 10591680., 9135932.,  9170204.,  9234466.,  9268864.,
      7843196.,  7872680.,  7927800.,  7957392.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      370881., 375822., 382248., 387216., 373743., 378738., 385218., 390240.,
      376605., 381654., 388188., 393264., 379467., 384570., 391158., 396288.,
      382329., 387486., 394128., 399312., 385191., 390402., 397098., 402336.,
      388053., 393318., 400068., 405360., 396639., 402066., 408978., 414432.,
      399501., 404982., 411948., 417456., 402363., 407898., 414918., 420480.,
      405225., 410814., 417888., 423504., 408087., 413730., 420858., 426528.,
      410949., 416646., 423828., 429552., 413811., 419562., 426798., 432576.,
      422397., 428310., 435708., 441648., 425259., 431226., 438678., 444672.,
      428121., 434142., 441648., 447696., 430983., 437058., 444618., 450720.,
      433845., 439974., 447588., 453744., 436707., 442890., 450558., 456768.,
      439569., 445806., 453528., 459792., 448155., 454554., 462438., 468864.,
      451017., 457470., 465408., 471888., 453879., 460386., 468378., 474912.,
      456741., 463302., 471348., 477936., 459603., 466218., 474318., 480960.,
      462465., 469134., 477288., 483984., 465327., 472050., 480258., 487008.,
      473913., 480798., 489168., 496080., 476775., 483714., 492138., 499104.,
      479637., 486630., 495108., 502128., 482499., 489546., 498078., 505152.,
      485361., 492462., 501048., 508176., 488223., 495378., 504018., 511200.,
      491085., 498294., 506988., 514224., 499671., 507042., 515898., 523296.,
      502533., 509958., 518868., 526320., 505395., 512874., 521838., 529344.,
      508257., 515790., 524808., 532368., 511119., 518706., 527778., 535392.,
      513981., 521622., 530748., 538416., 516843., 524538., 533718., 541440.,
      525429., 533286., 542628., 550512., 528291., 536202., 545598., 553536.,
      531153., 539118., 548568., 556560., 534015., 542034., 551538., 559584.,
      536877., 544950., 554508., 562608., 539739., 547866., 557478., 565632.,
      542601., 550782., 560448., 568656.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4987836.,  5010840.,  5033844.,  5056848.,  5105736.,  5128848.,
      5151960.,  5175072.,  5909564.,  5936528.,  5963492.,  5990456.,
      6047626.,  6074716.,  6101806.,  6128896.,  6911728.,  6942688.,
      6973648.,  7004608.,  7070464.,  7101568.,  7132672.,  7163776.,
      7930552.,  7965544.,  8000536.,  8035528.,  8110474.,  8145628.,
      8180782.,  8215936.,  7042192.,  7073440.,  7104688.,  7135936.,
      7202464.,  7233856.,  7265248.,  7296640.,  6177172.,  6204640.,
      6232108.,  6259576.,  6317794.,  6345388.,  6372982.,  6400576.,
      5335780.,  5359432.,  5383084.,  5406736.,  5456752.,  5480512.,
      5504272.,  5528032.,  6693996.,  6721968.,  6749940.,  6777912.,
      6837690.,  6865788.,  6893886.,  6921984.,  7893221.,  7926002.,
      7958783.,  7991564.,  8061376.,  8094304.,  8127232.,  8160160.,
      9177376.,  9215008.,  9252640.,  9290272.,  9370504.,  9408304.,
      9446104.,  9483904.,  10482637., 10525162., 10567687., 10610212.,
      10701250., 10743964., 10786678., 10829392., 9296944.,  9334912.,
      9372880.,  9410848.,  9491608.,  9529744.,  9567880.,  9606016.,
      8139457.,  8172826.,  8206195.,  8239564.,  8310172.,  8343688.,
      8377204.,  8410720.,  7010512.,  7039240.,  7067968.,  7096696.,
      7157278.,  7186132.,  7214986.,  7243840.,  8287728.,  8320992.,
      8354256.,  8387520.,  8457216.,  8490624.,  8524032.,  8557440.,
      9742688.,  9781664.,  9820640.,  9859616.,  9940936.,  9980080.,
      10019224., 10058368., 11286208., 11330944., 11375680., 11420416.,
      11513728., 11558656., 11603584., 11648512., 12854416., 12904960.,
      12955504., 13006048., 13111720., 13162480., 13213240., 13264000.,
      11387968., 11433088., 11478208., 11523328., 11617024., 11662336.,
      11707648., 11752960., 9955456.,  9995104.,  10034752., 10074400.,
      10156264., 10196080., 10235896., 10275712., 8557264.,  8591392.,
      8625520.,  8659648.,  8729824.,  8764096.,  8798368.,  8832640.,
      9745704.,  9784584.,  9823464.,  9862344.,  9940986.,  9980028.,
      10019070., 10058112., 11430749., 11476298., 11521847., 11567396.,
      11659090., 11704828., 11750566., 11796304., 13207120., 13259392.,
      13311664., 13363936., 13469032., 13521520., 13574008., 13626496.,
      15010897., 15069946., 15128995., 15188044., 15306892., 15366184.,
      15425476., 15484768., 13284160., 13336864., 13389568., 13442272.,
      13547608., 13600528., 13653448., 13706368., 11597953., 11644258.,
      11690563., 11736868., 11828854., 11875348., 11921842., 11968336.,
      9952708.,  9992560.,  10032412., 10072264., 10151062., 10191076.,
      10231090., 10271104., 8729232.,  8765088.,  8800944.,  8836800.,
      8907936.,  8943936.,  8979936.,  9015936.,  10262768., 10304768.,
      10346768., 10388768., 10471768., 10513936., 10556104., 10598272.,
      11899456., 11947648., 11995840., 12044032., 12139264., 12187648.,
      12236032., 12284416., 13575424., 13629856., 13684288., 13738720.,
      13846552., 13901200., 13955848., 14010496., 12025792., 12074368.,
      12122944., 12171520., 12267136., 12315904., 12364672., 12413440.,
      10513936., 10556608., 10599280., 10641952., 10725496., 10768336.,
      10811176., 10854016., 9040240.,  9076960.,  9113680.,  9150400.,
      9222016.,  9258880.,  9295744.,  9332608.,  8061060.,  8093568.,
      8126076.,  8158584.,  8223186.,  8255820.,  8288454.,  8321088.,
      9504161.,  9542234.,  9580307.,  9618380.,  9693820.,  9732040.,
      9770260.,  9808480.,  11063104., 11106784., 11150464., 11194144.,
      11280808., 11324656., 11368504., 11412352., 12590609., 12639938.,
      12689267., 12738596., 12836358., 12885876., 12935394., 12984912.,
      11161168., 11205184., 11249200., 11293216., 11379896., 11424080.,
      11468264., 11512448., 9765885.,  9804546.,  9843207.,  9881868.,
      9957592.,  9996400.,  10035208., 10074016., 8405096.,  8438360.,
      8471624.,  8504888.,  8569782.,  8603172.,  8636562.,  8669952.,
      7248420.,  7277256.,  7306092.,  7334928.,  7390896.,  7419840.,
      7448784.,  7477728.,  8576448.,  8610216.,  8643984.,  8677752.,
      8743182.,  8777076.,  8810970.,  8844864.,  10032848., 10071584.,
      10110320., 10149056., 10224352., 10263232., 10302112., 10340992.,
      11461172., 11504912., 11548652., 11592392., 11677446., 11721348.,
      11765250., 11809152., 10176624., 10215648., 10254672., 10293696.,
      10369152., 10408320., 10447488., 10486656., 8922776.,  8957048.,
      8991320.,  9025592.,  9091558.,  9125956.,  9160354.,  9194752.,
      7699916.,  7729400.,  7758884.,  7788368.,  7844952.,  7874544.,
      7904136.,  7933728.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      736821.,  741762.,  746703.,  751644.,  759528.,  764496.,  769464.,
      774432.,  742491.,  747486.,  752481.,  757476.,  765414.,  770436.,
      775458.,  780480.,  748161.,  753210.,  758259.,  763308.,  771300.,
      776376.,  781452.,  786528.,  753831.,  758934.,  764037.,  769140.,
      777186.,  782316.,  787446.,  792576.,  759501.,  764658.,  769815.,
      774972.,  783072.,  788256.,  793440.,  798624.,  765171.,  770382.,
      775593.,  780804.,  788958.,  794196.,  799434.,  804672.,  770841.,
      776106.,  781371.,  786636.,  794844.,  800136.,  805428.,  810720.,
      787851.,  793278.,  798705.,  804132.,  812502.,  817956.,  823410.,
      828864.,  793521.,  799002.,  804483.,  809964.,  818388.,  823896.,
      829404.,  834912.,  799191.,  804726.,  810261.,  815796.,  824274.,
      829836.,  835398.,  840960.,  804861.,  810450.,  816039.,  821628.,
      830160.,  835776.,  841392.,  847008.,  810531.,  816174.,  821817.,
      827460.,  836046.,  841716.,  847386.,  853056.,  816201.,  821898.,
      827595.,  833292.,  841932.,  847656.,  853380.,  859104.,  821871.,
      827622.,  833373.,  839124.,  847818.,  853596.,  859374.,  865152.,
      838881.,  844794.,  850707.,  856620.,  865476.,  871416.,  877356.,
      883296.,  844551.,  850518.,  856485.,  862452.,  871362.,  877356.,
      883350.,  889344.,  850221.,  856242.,  862263.,  868284.,  877248.,
      883296.,  889344.,  895392.,  855891.,  861966.,  868041.,  874116.,
      883134.,  889236.,  895338.,  901440.,  861561.,  867690.,  873819.,
      879948.,  889020.,  895176.,  901332.,  907488.,  867231.,  873414.,
      879597.,  885780.,  894906.,  901116.,  907326.,  913536.,  872901.,
      879138.,  885375.,  891612.,  900792.,  907056.,  913320.,  919584.,
      889911.,  896310.,  902709.,  909108.,  918450.,  924876.,  931302.,
      937728.,  895581.,  902034.,  908487.,  914940.,  924336.,  930816.,
      937296.,  943776.,  901251.,  907758.,  914265.,  920772.,  930222.,
      936756.,  943290.,  949824.,  906921.,  913482.,  920043.,  926604.,
      936108.,  942696.,  949284.,  955872.,  912591.,  919206.,  925821.,
      932436.,  941994.,  948636.,  955278.,  961920.,  918261.,  924930.,
      931599.,  938268.,  947880.,  954576.,  961272.,  967968.,  923931.,
      930654.,  937377.,  944100.,  953766.,  960516.,  967266.,  974016.,
      940941.,  947826.,  954711.,  961596.,  971424.,  978336.,  985248.,
      992160.,  946611.,  953550.,  960489.,  967428.,  977310.,  984276.,
      991242.,  998208.,  952281.,  959274.,  966267.,  973260.,  983196.,
      990216.,  997236.,  1004256., 957951.,  964998.,  972045.,  979092.,
      989082.,  996156.,  1003230., 1010304., 963621.,  970722.,  977823.,
      984924.,  994968.,  1002096., 1009224., 1016352., 969291.,  976446.,
      983601.,  990756.,  1000854., 1008036., 1015218., 1022400., 974961.,
      982170.,  989379.,  996588.,  1006740., 1013976., 1021212., 1028448.,
      991971.,  999342.,  1006713., 1014084., 1024398., 1031796., 1039194.,
      1046592., 997641.,  1005066., 1012491., 1019916., 1030284., 1037736.,
      1045188., 1052640., 1003311., 1010790., 1018269., 1025748., 1036170.,
      1043676., 1051182., 1058688., 1008981., 1016514., 1024047., 1031580.,
      1042056., 1049616., 1057176., 1064736., 1014651., 1022238., 1029825.,
      1037412., 1047942., 1055556., 1063170., 1070784., 1020321., 1027962.,
      1035603., 1043244., 1053828., 1061496., 1069164., 1076832., 1025991.,
      1033686., 1041381., 1049076., 1059714., 1067436., 1075158., 1082880.,
      1043001., 1050858., 1058715., 1066572., 1077372., 1085256., 1093140.,
      1101024., 1048671., 1056582., 1064493., 1072404., 1083258., 1091196.,
      1099134., 1107072., 1054341., 1062306., 1070271., 1078236., 1089144.,
      1097136., 1105128., 1113120., 1060011., 1068030., 1076049., 1084068.,
      1095030., 1103076., 1111122., 1119168., 1065681., 1073754., 1081827.,
      1089900., 1100916., 1109016., 1117116., 1125216., 1071351., 1079478.,
      1087605., 1095732., 1106802., 1114956., 1123110., 1131264., 1077021.,
      1085202., 1093383., 1101564., 1112688., 1120896., 1129104., 1137312.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1288364., 1314640., 1341132., 1367840., 1512014., 1542712., 1573662.,
      1604864., 1772944., 1808320., 1843984., 1879936., 2072914., 2113224.,
      2153858., 2194816., 1828240., 1863872., 1899792., 1936000., 1586318.,
      1617272., 1648478., 1679936., 1372268., 1398800., 1425548., 1452512.,
      1729358., 1760824., 1792542., 1824512., 2045307., 2082060., 2119107.,
      2156448., 2408168., 2450464., 2493096., 2536064., 2819653., 2867748.,
      2916221., 2965072., 2512104., 2554656., 2597544., 2640768., 2207035.,
      2244044., 2281347., 2318944., 1920398., 1952120., 1984094., 2016320.,
      2262416., 2297792., 2333456., 2369408., 2683624., 2724896., 2766504.,
      2808448., 3161536., 3208960., 3256768., 3304960., 3697816., 3751648.,
      3805912., 3860608., 3305920., 3353344., 3401152., 3449344., 2924520.,
      2965792., 3007400., 3049344., 2551952., 2587328., 2622992., 2658944.,
      2971730., 3010760., 3050114., 3089792., 3529029., 3574564., 3620477.,
      3666768., 4151960., 4204256., 4256984., 4310144., 4842139., 4901452.,
      4961251., 5021536., 4151960., 4204256., 4256984., 4310144., 3529029.,
      3574564., 3620477., 3666768., 2971730., 3010760., 3050114., 3089792.,
      2551952., 2587328., 2622992., 2658944., 2924520., 2965792., 3007400.,
      3049344., 3305920., 3353344., 3401152., 3449344., 3697816., 3751648.,
      3805912., 3860608., 3161536., 3208960., 3256768., 3304960., 2683624.,
      2724896., 2766504., 2808448., 2262416., 2297792., 2333456., 2369408.,
      1920398., 1952120., 1984094., 2016320., 2207035., 2244044., 2281347.,
      2318944., 2512104., 2554656., 2597544., 2640768., 2819653., 2867748.,
      2916221., 2965072., 2408168., 2450464., 2493096., 2536064., 2045307.,
      2082060., 2119107., 2156448., 1729358., 1760824., 1792542., 1824512.,
      1372268., 1398800., 1425548., 1452512., 1586318., 1617272., 1648478.,
      1679936., 1828240., 1863872., 1899792., 1936000., 2072914., 2113224.,
      2153858., 2194816., 1772944., 1808320., 1843984., 1879936., 1512014.,
      1542712., 1573662., 1604864., 1288364., 1314640., 1341132., 1367840.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      740331.,  751644.,  763011.,  774432.,  746055.,  757476.,  768951.,
      780480.,  751779.,  763308.,  774891.,  786528.,  757503.,  769140.,
      780831.,  792576.,  763227.,  774972.,  786771.,  798624.,  768951.,
      780804.,  792711.,  804672.,  774675.,  786636.,  798651.,  810720.,
      791847.,  804132.,  816471.,  828864.,  797571.,  809964.,  822411.,
      834912.,  803295.,  815796.,  828351.,  840960.,  809019.,  821628.,
      834291.,  847008.,  814743.,  827460.,  840231.,  853056.,  820467.,
      833292.,  846171.,  859104.,  826191.,  839124.,  852111.,  865152.,
      843363.,  856620.,  869931.,  883296.,  849087.,  862452.,  875871.,
      889344.,  854811.,  868284.,  881811.,  895392.,  860535.,  874116.,
      887751.,  901440.,  866259.,  879948.,  893691.,  907488.,  871983.,
      885780.,  899631.,  913536.,  877707.,  891612.,  905571.,  919584.,
      894879.,  909108.,  923391.,  937728.,  900603.,  914940.,  929331.,
      943776.,  906327.,  920772.,  935271.,  949824.,  912051.,  926604.,
      941211.,  955872.,  917775.,  932436.,  947151.,  961920.,  923499.,
      938268.,  953091.,  967968.,  929223.,  944100.,  959031.,  974016.,
      946395.,  961596.,  976851.,  992160.,  952119.,  967428.,  982791.,
      998208.,  957843.,  973260.,  988731.,  1004256., 963567.,  979092.,
      994671.,  1010304., 969291.,  984924.,  1000611., 1016352., 975015.,
      990756.,  1006551., 1022400., 980739.,  996588.,  1012491., 1028448.,
      997911.,  1014084., 1030311., 1046592., 1003635., 1019916., 1036251.,
      1052640., 1009359., 1025748., 1042191., 1058688., 1015083., 1031580.,
      1048131., 1064736., 1020807., 1037412., 1054071., 1070784., 1026531.,
      1043244., 1060011., 1076832., 1032255., 1049076., 1065951., 1082880.,
      1049427., 1066572., 1083771., 1101024., 1055151., 1072404., 1089711.,
      1107072., 1060875., 1078236., 1095651., 1113120., 1066599., 1084068.,
      1101591., 1119168., 1072323., 1089900., 1107531., 1125216., 1078047.,
      1095732., 1113471., 1131264., 1083771., 1101564., 1119411., 1137312.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1696780., 1710168., 1736680., 1750176., 1777012., 1790616., 1817776.,
      1831488., 1933938., 1949596., 1980616., 1996400., 2027798., 2043708.,
      2075484., 2091520., 2201296., 2219296., 2255008., 2273152., 2309296.,
      2327584., 2364160., 2382592., 2500326., 2520740., 2561328., 2581904.,
      2622978., 2643716., 2685276., 2706176., 2145936., 2164000., 2200160.,
      2218368., 2254960., 2273312., 2310336., 2328832., 1800962., 1816604.,
      1848152., 1863920., 1895846., 1911740., 1944044., 1960064., 1513340.,
      1526744., 1553752., 1567264., 1594596., 1608216., 1635872., 1649600.,
      1777810., 1793436., 1825000., 1840752., 1872694., 1888572., 1920892.,
      1936896., 2060399., 2078710., 2115582., 2134040., 2171353., 2189958.,
      2227712., 2246464., 2381176., 2402256., 2444608., 2465856., 2508712.,
      2530128., 2573488., 2595072., 2741517., 2765450., 2813454., 2837576.,
      2886147., 2910458., 2959596., 2984096., 2406616., 2427856., 2470560.,
      2491968., 2535176., 2556752., 2600464., 2622208., 2073431., 2091894.,
      2129126., 2147736., 2185409., 2204166., 2242280., 2261184., 1771562.,
      1787420., 1819264., 1835248., 1867470., 1883580., 1916180., 1932416.,
      1989072., 2006304., 2041760., 2059136., 2095024., 2112544., 2148864.,
      2166528., 2345464., 2365648., 2407104., 2427456., 2469416., 2489936.,
      2532400., 2553088., 2749376., 2772608., 2820224., 2843648., 2891840.,
      2915456., 2964224., 2988032., 3202088., 3228464., 3282400., 3308992.,
      3363576., 3390384., 3445616., 3472640., 2868416., 2891648., 2939520.,
      2962944., 3011392., 3035008., 3084032., 3107840., 2545080., 2565328.,
      2607232., 2627648., 2670056., 2690640., 2733552., 2754304., 2226704.,
      2244128., 2280160., 2297728., 2334192., 2351904., 2388800., 2406656.,
      2534790., 2554020., 2593232., 2612624., 2652322., 2671876., 2712060.,
      2731776., 3020397., 3042954., 3088750., 3111496., 3157859., 3180794.,
      3227724., 3250848., 3561128., 3587120., 3639648., 3665856., 3719032.,
      3745456., 3799280., 3825920., 4158167., 4187702., 4247110., 4276888.,
      4337025., 4367046., 4427912., 4458176., 3588936., 3615024., 3667712.,
      3694016., 3747352., 3773872., 3827856., 3854592., 3069829., 3092618.,
      3138694., 3161672., 3208315., 3231482., 3278692., 3302048., 2595566.,
      2615204., 2654776., 2674576., 2714634., 2734596., 2775140., 2795264.,
      2192272., 2210080., 2245472., 2263424., 2299248., 2317344., 2353600.,
      2371840., 2520920., 2541776., 2583072., 2604096., 2645896., 2667088.,
      2709392., 2730752., 2848448., 2872448., 2919808., 2944000., 2991936.,
      3016320., 3064832., 3089408., 3176136., 3203376., 3256960., 3284416.,
      3338648., 3366320., 3421200., 3449088., 2761408., 2785408., 2832768.,
      2856960., 2904896., 2929280., 2977792., 3002368., 2367768., 2388688.,
      2429920., 2451008., 2492744., 2514000., 2556240., 2577664., 2034128.,
      2052128., 2087584., 2105728., 2141616., 2159904., 2196224., 2214656.,
      1814434., 1830172., 1861880., 1877744., 1909830., 1925820., 1958284.,
      1974400., 2125463., 2143862., 2180902., 2199448., 2236929., 2255622.,
      2293544., 2312384., 2446392., 2467536., 2510080., 2531392., 2574440.,
      2595920., 2639472., 2661120., 2760933., 2784906., 2832870., 2857032.,
      2905563., 2929914., 2979012., 3003552., 2467224., 2488272., 2530656.,
      2551872., 2594760., 2616144., 2659536., 2681088., 2164863., 2183158.,
      2220046., 2238488., 2275817., 2294406., 2332176., 2350912., 1901882.,
      1917596., 1949328., 1965168., 1997278., 2013244., 2045732., 2061824.,
      1508092., 1521112., 1546968., 1560096., 1586276., 1599512., 1626016.,
      1639360., 1803722., 1818908., 1849120., 1864432., 1895022., 1910460.,
      1941428., 1956992., 2119952., 2137376., 2172128., 2189696., 2224880.,
      2242592., 2278208., 2296064., 2431374., 2451108., 2490328., 2510224.,
      2549930., 2569988., 2610180., 2630400., 2195920., 2213152., 2247584.,
      2264960., 2299824., 2317344., 2352640., 2370304., 1983066., 1997980.,
      2027952., 2042992., 2073342., 2088508., 2119236., 2134528., 1789292.,
      1802072., 1827912., 1840800., 1866964., 1879960., 1906448., 1919552.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1470807., 1480662., 1493406., 1503288., 1516113., 1526022., 1538928.,
      1548864., 1482147., 1492110., 1504962., 1514952., 1527885., 1537902.,
      1550916., 1560960., 1493487., 1503558., 1516518., 1526616., 1539657.,
      1549782., 1562904., 1573056., 1504827., 1515006., 1528074., 1538280.,
      1551429., 1561662., 1574892., 1585152., 1516167., 1526454., 1539630.,
      1549944., 1563201., 1573542., 1586880., 1597248., 1527507., 1537902.,
      1551186., 1561608., 1574973., 1585422., 1598868., 1609344., 1538847.,
      1549350., 1562742., 1573272., 1586745., 1597302., 1610856., 1621440.,
      1572867., 1583694., 1597410., 1608264., 1622061., 1632942., 1646820.,
      1657728., 1584207., 1595142., 1608966., 1619928., 1633833., 1644822.,
      1658808., 1669824., 1595547., 1606590., 1620522., 1631592., 1645605.,
      1656702., 1670796., 1681920., 1606887., 1618038., 1632078., 1643256.,
      1657377., 1668582., 1682784., 1694016., 1618227., 1629486., 1643634.,
      1654920., 1669149., 1680462., 1694772., 1706112., 1629567., 1640934.,
      1655190., 1666584., 1680921., 1692342., 1706760., 1718208., 1640907.,
      1652382., 1666746., 1678248., 1692693., 1704222., 1718748., 1730304.,
      1674927., 1686726., 1701414., 1713240., 1728009., 1739862., 1754712.,
      1766592., 1686267., 1698174., 1712970., 1724904., 1739781., 1751742.,
      1766700., 1778688., 1697607., 1709622., 1724526., 1736568., 1751553.,
      1763622., 1778688., 1790784., 1708947., 1721070., 1736082., 1748232.,
      1763325., 1775502., 1790676., 1802880., 1720287., 1732518., 1747638.,
      1759896., 1775097., 1787382., 1802664., 1814976., 1731627., 1743966.,
      1759194., 1771560., 1786869., 1799262., 1814652., 1827072., 1742967.,
      1755414., 1770750., 1783224., 1798641., 1811142., 1826640., 1839168.,
      1776987., 1789758., 1805418., 1818216., 1833957., 1846782., 1862604.,
      1875456., 1788327., 1801206., 1816974., 1829880., 1845729., 1858662.,
      1874592., 1887552., 1799667., 1812654., 1828530., 1841544., 1857501.,
      1870542., 1886580., 1899648., 1811007., 1824102., 1840086., 1853208.,
      1869273., 1882422., 1898568., 1911744., 1822347., 1835550., 1851642.,
      1864872., 1881045., 1894302., 1910556., 1923840., 1833687., 1846998.,
      1863198., 1876536., 1892817., 1906182., 1922544., 1935936., 1845027.,
      1858446., 1874754., 1888200., 1904589., 1918062., 1934532., 1948032.,
      1879047., 1892790., 1909422., 1923192., 1939905., 1953702., 1970496.,
      1984320., 1890387., 1904238., 1920978., 1934856., 1951677., 1965582.,
      1982484., 1996416., 1901727., 1915686., 1932534., 1946520., 1963449.,
      1977462., 1994472., 2008512., 1913067., 1927134., 1944090., 1958184.,
      1975221., 1989342., 2006460., 2020608., 1924407., 1938582., 1955646.,
      1969848., 1986993., 2001222., 2018448., 2032704., 1935747., 1950030.,
      1967202., 1981512., 1998765., 2013102., 2030436., 2044800., 1947087.,
      1961478., 1978758., 1993176., 2010537., 2024982., 2042424., 2056896.,
      1981107., 1995822., 2013426., 2028168., 2045853., 2060622., 2078388.,
      2093184., 1992447., 2007270., 2024982., 2039832., 2057625., 2072502.,
      2090376., 2105280., 2003787., 2018718., 2036538., 2051496., 2069397.,
      2084382., 2102364., 2117376., 2015127., 2030166., 2048094., 2063160.,
      2081169., 2096262., 2114352., 2129472., 2026467., 2041614., 2059650.,
      2074824., 2092941., 2108142., 2126340., 2141568., 2037807., 2053062.,
      2071206., 2086488., 2104713., 2120022., 2138328., 2153664., 2049147.,
      2064510., 2082762., 2098152., 2116485., 2131902., 2150316., 2165760.,
      2083167., 2098854., 2117430., 2133144., 2151801., 2167542., 2186280.,
      2202048., 2094507., 2110302., 2128986., 2144808., 2163573., 2179422.,
      2198268., 2214144., 2105847., 2121750., 2140542., 2156472., 2175345.,
      2191302., 2210256., 2226240., 2117187., 2133198., 2152098., 2168136.,
      2187117., 2203182., 2222244., 2238336., 2128527., 2144646., 2163654.,
      2179800., 2198889., 2215062., 2234232., 2250432., 2139867., 2156094.,
      2175210., 2191464., 2210661., 2226942., 2246220., 2262528., 2151207.,
      2167542., 2186766., 2203128., 2222433., 2238822., 2258208., 2274624.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6419148.,  6444568.,  6469988.,  6495408.,  6546968.,  6572496.,
      6598024.,  6623552.,  6675652.,  6701288.,  6726924.,  6752560.,
      6805200.,  6830944.,  6856688.,  6882432.,  7327418.,  7357156.,
      7386894.,  7416632.,  7476968.,  7506832.,  7536696.,  7566560.,
      7627526.,  7657516.,  7687506.,  7717496.,  7779092.,  7809208.,
      7839324.,  7869440.,  8394320.,  8428448.,  8462576.,  8496704.,
      8566112.,  8600384.,  8634656.,  8668928.,  8739056.,  8773472.,
      8807888.,  8842304.,  8913152.,  8947712.,  8982272.,  9016832.,
      9491726.,  9530316.,  9568906.,  9607496.,  9686272.,  9725024.,
      9763776.,  9802528.,  9882114.,  9921028.,  9959942.,  9998856.,
      10079252., 10118328., 10157404., 10196480., 8287632.,  8321824.,
      8356016.,  8390208.,  8460448.,  8494784.,  8529120.,  8563456.,
      8634416.,  8668896.,  8703376.,  8737856.,  8809536.,  8844160.,
      8878784.,  8913408.,  7004138.,  7033860.,  7063582.,  7093304.,
      7154712.,  7184560.,  7214408.,  7244256.,  7306294.,  7336268.,
      7366242.,  7396216.,  7458884.,  7488984.,  7519084.,  7549184.,
      5966492.,  5992184.,  6017876.,  6043568.,  6096360.,  6122160.,
      6147960.,  6173760.,  6227092.,  6253000.,  6278908.,  6304816.,
      6358688.,  6384704.,  6410720.,  6436736.,  6801690.,  6830884.,
      6860078.,  6889272.,  6950216.,  6979536.,  7008856.,  7038176.,
      7099750.,  7129196.,  7158642.,  7188088.,  7250292.,  7279864.,
      7309436.,  7339008.,  7817047.,  7851230.,  7885413.,  7919596.,
      7990754.,  8025084.,  8059414.,  8093744.,  8165637.,  8200114.,
      8234591.,  8269068.,  8341696.,  8376320.,  8410944.,  8445568.,
      9002904.,  9042160.,  9081416.,  9120672.,  9202304.,  9241728.,
      9281152.,  9320576.,  9403048.,  9442640.,  9482232.,  9521824.,
      9605136.,  9644896.,  9684656.,  9724416.,  10230941., 10275354.,
      10319767., 10364180., 10456546., 10501148., 10545750., 10590352.,
      10683663., 10728454., 10773245., 10818036., 10912292., 10957272.,
      11002252., 11047232., 9024952.,  9064368.,  9103784.,  9143200.,
      9225376.,  9264960.,  9304544.,  9344128.,  9427144.,  9466896.,
      9506648.,  9546400.,  9630256.,  9670176.,  9710096.,  9750016.,
      7728271.,  7762606.,  7796941.,  7831276.,  7903002.,  7937484.,
      7971966.,  8006448.,  8078909.,  8113538.,  8148167.,  8182796.,
      8255992.,  8290768.,  8325544.,  8360320.,  6592610.,  6622292.,
      6651974.,  6681656.,  6743184.,  6772992.,  6802800.,  6832608.,
      6894766.,  6924700.,  6954634.,  6984568.,  7047356.,  7077416.,
      7107476.,  7137536.,  7905360.,  7938976.,  7972592.,  8006208.,
      8076128.,  8109888.,  8143648.,  8177408.,  8248048.,  8281952.,
      8315856.,  8349760.,  8421120.,  8455168.,  8489216.,  8523264.,
      9224216.,  9263600.,  9302984.,  9342368.,  9424128.,  9463680.,
      9503232.,  9542784.,  9625384.,  9665104.,  9704824.,  9744544.,
      9827984.,  9867872.,  9907760.,  9947648.,  10724032., 10769280.,
      10814528., 10859776., 10953600., 10999040., 11044480., 11089920.,
      11184704., 11230336., 11275968., 11321600., 11417344., 11463168.,
      11508992., 11554816., 12276296., 12327504., 12378712., 12429920.,
      12536032., 12587456., 12638880., 12690304., 12797496., 12849136.,
      12900776., 12952416., 13060688., 13112544., 13164400., 13216256.,
      11036096., 11081600., 11127104., 11172608., 11267200., 11312896.,
      11358592., 11404288., 11499840., 11545728., 11591616., 11637504.,
      11734016., 11780096., 11826176., 11872256., 9697368.,  9737072.,
      9776776.,  9816480.,  9899328.,  9939200.,  9979072.,  10018944.,
      10102632., 10142672., 10182712., 10222752., 10307280., 10347488.,
      10387696., 10427904., 8438288.,  8472608.,  8506928.,  8541248.,
      8612640.,  8647104.,  8681568.,  8716032.,  8788144.,  8822752.,
      8857360.,  8891968.,  8964800.,  8999552.,  9034304.,  9069056.,
      9710574.,  9749260.,  9787946.,  9826632.,  9905120.,  9943968.,
      9982816.,  10021664., 10100962., 10139972., 10178982., 10217992.,
      10298100., 10337272., 10376444., 10415616., 11365821., 11411162.,
      11456503., 11501844., 11593474., 11639004., 11684534., 11730064.,
      11822639., 11868358., 11914077., 11959796., 12053316., 12099224.,
      12145132., 12191040., 13209032., 13261136., 13313240., 13365344.,
      13470304., 13522624., 13574944., 13627264., 13733304., 13785840.,
      13838376., 13890912., 13998032., 14050784., 14103536., 14156288.,
      15111503., 15170478., 15229453., 15288428., 15406906., 15466124.,
      15525342., 15584560., 15704253., 15763714., 15823175., 15882636.,
      16003544., 16063248., 16122952., 16182656., 13367208., 13419664.,
      13472120., 13524576., 13630016., 13682688., 13735360., 13788032.,
      13894552., 13947440., 14000328., 14053216., 14160816., 14213920.,
      14267024., 14320128., 11517957., 11563786., 11609615., 11655444.,
      11747658., 11793676., 11839694., 11885712., 11978871., 12025078.,
      12071285., 12117492., 12211596., 12257992., 12304388., 12350784.,
      9930534.,  9970140.,  10009746., 10049352., 10128664., 10168432.,
      10208200., 10247968., 10328090., 10368020., 10407950., 10447880.,
      10528812., 10568904., 10608996., 10649088., 8775568.,  8811296.,
      8847024.,  8882752.,  8953504.,  8989376.,  9025248.,  9061120.,
      9132592.,  9168608.,  9204624.,  9240640.,  9312832.,  9348992.,
      9385152.,  9421312.,  10252088., 10293936., 10335784., 10377632.,
      10460192., 10502208., 10544224., 10586240., 10669640., 10711824.,
      10754008., 10796192., 10880432., 10922784., 10965136., 11007488.,
      11677120., 11725184., 11773248., 11821312., 11915904., 11964160.,
      12012416., 12060672., 12156224., 12204672., 12253120., 12301568.,
      12398080., 12446720., 12495360., 12544000., 13184296., 13238672.,
      13293048., 13347424., 13454272., 13508864., 13563456., 13618048.,
      13725976., 13780784., 13835592., 13890400., 13999408., 14054432.,
      14109456., 14164480., 11732672., 11780992., 11829312., 11877632.,
      11972480., 12020992., 12069504., 12118016., 12213824., 12262528.,
      12311232., 12359936., 12456704., 12505600., 12554496., 12603392.,
      10150776., 10192944., 10235112., 10277280., 10359904., 10402240.,
      10444576., 10486912., 10570376., 10612880., 10655384., 10697888.,
      10782192., 10824864., 10867536., 10910208., 8820048.,  8856480.,
      8892912.,  8929344.,  9000544.,  9037120.,  9073696.,  9110272.,
      9182192.,  9218912.,  9255632.,  9292352.,  9364992.,  9401856.,
      9438720.,  9475584.,  8253898.,  8286020.,  8318142.,  8350264.,
      8414200.,  8446448.,  8478696.,  8510944.,  8575510.,  8607884.,
      8640258.,  8672632.,  8737828.,  8770328.,  8802828.,  8835328.,
      9736271.,  9773870.,  9811469.,  9849068.,  9923802.,  9961548.,
      9999294.,  10037040., 10112509., 10150402., 10188295., 10226188.,
      10302392., 10340432., 10378472., 10416512., 11193304., 11236464.,
      11279624., 11322784., 11408576., 11451904., 11495232., 11538560.,
      11625192., 11668688., 11712184., 11755680., 11843152., 11886816.,
      11930480., 11974144., 12592421., 12641226., 12690031., 12738836.,
      12835434., 12884428., 12933422., 12982416., 13079959., 13129142.,
      13178325., 13227508., 13325996., 13375368., 13424740., 13474112.,
      11329528., 11372848., 11416168., 11459488., 11545312., 11588800.,
      11632288., 11675776., 11762440., 11806096., 11849752., 11893408.,
      11980912., 12024736., 12068560., 12112384., 9909639.,  9947390.,
      9985141.,  10022892., 10097682., 10135580., 10173478., 10211376.,
      10286901., 10324946., 10362991., 10401036., 10477296., 10515488.,
      10553680., 10591872., 8658706.,  8691316.,  8723926.,  8756536.,
      8821056.,  8853792.,  8886528.,  8919264.,  8984414.,  9017276.,
      9050138.,  9083000.,  9148780.,  9181768.,  9214756.,  9247744.,
      6655260.,  6683128.,  6710996.,  6738864.,  6792296.,  6820272.,
      6848248.,  6876224.,  6930196.,  6958280.,  6986364.,  7014448.,
      7068960.,  7097152.,  7125344.,  7153536.,  7922754.,  7955348.,
      7987942.,  8020536.,  8083056.,  8115776.,  8148496.,  8181216.,
      8244366.,  8277212.,  8310058.,  8342904.,  8406684.,  8439656.,
      8472628.,  8505600.,  9190416.,  9227808.,  9265200.,  9302592.,
      9374496.,  9412032.,  9449568.,  9487104.,  9559728.,  9597408.,
      9635088.,  9672768.,  9746112.,  9783936.,  9821760.,  9859584.,
      10407430., 10449692., 10491954., 10534216., 10615288., 10657712.,
      10700136., 10742560., 10824442., 10867028., 10909614., 10952200.,
      11034892., 11077640., 11120388., 11163136., 9301840.,  9339296.,
      9376752.,  9414208.,  9485920.,  9523520.,  9561120.,  9598720.,
      9671152.,  9708896.,  9746640.,  9784384.,  9857536.,  9895424.,
      9933312.,  9971200.,  8265586.,  8298164.,  8330742.,  8363320.,
      8425888.,  8458592.,  8491296.,  8524000.,  8587198.,  8620028.,
      8652858.,  8685688.,  8749516.,  8782472.,  8815428.,  8848384.,
      7316716.,  7344856.,  7372996.,  7401136.,  7455288.,  7483536.,
      7511784.,  7540032.,  7594724.,  7623080.,  7651436.,  7679792.,
      7735024.,  7763488.,  7791952.,  7820416.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2931759., 2941614., 2951469., 2961324., 2976930., 2986812., 2996694.,
      3006576., 3022317., 3032226., 3042135., 3052044., 3067920., 3077856.,
      3087792., 3097728., 2954331., 2964294., 2974257., 2984220., 2999934.,
      3009924., 3019914., 3029904., 3045753., 3055770., 3065787., 3075804.,
      3091788., 3101832., 3111876., 3121920., 2976903., 2986974., 2997045.,
      3007116., 3022938., 3033036., 3043134., 3053232., 3069189., 3079314.,
      3089439., 3099564., 3115656., 3125808., 3135960., 3146112., 2999475.,
      3009654., 3019833., 3030012., 3045942., 3056148., 3066354., 3076560.,
      3092625., 3102858., 3113091., 3123324., 3139524., 3149784., 3160044.,
      3170304., 3022047., 3032334., 3042621., 3052908., 3068946., 3079260.,
      3089574., 3099888., 3116061., 3126402., 3136743., 3147084., 3163392.,
      3173760., 3184128., 3194496., 3044619., 3055014., 3065409., 3075804.,
      3091950., 3102372., 3112794., 3123216., 3139497., 3149946., 3160395.,
      3170844., 3187260., 3197736., 3208212., 3218688., 3067191., 3077694.,
      3088197., 3098700., 3114954., 3125484., 3136014., 3146544., 3162933.,
      3173490., 3184047., 3194604., 3211128., 3221712., 3232296., 3242880.,
      3134907., 3145734., 3156561., 3167388., 3183966., 3194820., 3205674.,
      3216528., 3233241., 3244122., 3255003., 3265884., 3282732., 3293640.,
      3304548., 3315456., 3157479., 3168414., 3179349., 3190284., 3206970.,
      3217932., 3228894., 3239856., 3256677., 3267666., 3278655., 3289644.,
      3306600., 3317616., 3328632., 3339648., 3180051., 3191094., 3202137.,
      3213180., 3229974., 3241044., 3252114., 3263184., 3280113., 3291210.,
      3302307., 3313404., 3330468., 3341592., 3352716., 3363840., 3202623.,
      3213774., 3224925., 3236076., 3252978., 3264156., 3275334., 3286512.,
      3303549., 3314754., 3325959., 3337164., 3354336., 3365568., 3376800.,
      3388032., 3225195., 3236454., 3247713., 3258972., 3275982., 3287268.,
      3298554., 3309840., 3326985., 3338298., 3349611., 3360924., 3378204.,
      3389544., 3400884., 3412224., 3247767., 3259134., 3270501., 3281868.,
      3298986., 3310380., 3321774., 3333168., 3350421., 3361842., 3373263.,
      3384684., 3402072., 3413520., 3424968., 3436416., 3270339., 3281814.,
      3293289., 3304764., 3321990., 3333492., 3344994., 3356496., 3373857.,
      3385386., 3396915., 3408444., 3425940., 3437496., 3449052., 3460608.,
      3338055., 3349854., 3361653., 3373452., 3391002., 3402828., 3414654.,
      3426480., 3444165., 3456018., 3467871., 3479724., 3497544., 3509424.,
      3521304., 3533184., 3360627., 3372534., 3384441., 3396348., 3414006.,
      3425940., 3437874., 3449808., 3467601., 3479562., 3491523., 3503484.,
      3521412., 3533400., 3545388., 3557376., 3383199., 3395214., 3407229.,
      3419244., 3437010., 3449052., 3461094., 3473136., 3491037., 3503106.,
      3515175., 3527244., 3545280., 3557376., 3569472., 3581568., 3405771.,
      3417894., 3430017., 3442140., 3460014., 3472164., 3484314., 3496464.,
      3514473., 3526650., 3538827., 3551004., 3569148., 3581352., 3593556.,
      3605760., 3428343., 3440574., 3452805., 3465036., 3483018., 3495276.,
      3507534., 3519792., 3537909., 3550194., 3562479., 3574764., 3593016.,
      3605328., 3617640., 3629952., 3450915., 3463254., 3475593., 3487932.,
      3506022., 3518388., 3530754., 3543120., 3561345., 3573738., 3586131.,
      3598524., 3616884., 3629304., 3641724., 3654144., 3473487., 3485934.,
      3498381., 3510828., 3529026., 3541500., 3553974., 3566448., 3584781.,
      3597282., 3609783., 3622284., 3640752., 3653280., 3665808., 3678336.,
      3541203., 3553974., 3566745., 3579516., 3598038., 3610836., 3623634.,
      3636432., 3655089., 3667914., 3680739., 3693564., 3712356., 3725208.,
      3738060., 3750912., 3563775., 3576654., 3589533., 3602412., 3621042.,
      3633948., 3646854., 3659760., 3678525., 3691458., 3704391., 3717324.,
      3736224., 3749184., 3762144., 3775104., 3586347., 3599334., 3612321.,
      3625308., 3644046., 3657060., 3670074., 3683088., 3701961., 3715002.,
      3728043., 3741084., 3760092., 3773160., 3786228., 3799296., 3608919.,
      3622014., 3635109., 3648204., 3667050., 3680172., 3693294., 3706416.,
      3725397., 3738546., 3751695., 3764844., 3783960., 3797136., 3810312.,
      3823488., 3631491., 3644694., 3657897., 3671100., 3690054., 3703284.,
      3716514., 3729744., 3748833., 3762090., 3775347., 3788604., 3807828.,
      3821112., 3834396., 3847680., 3654063., 3667374., 3680685., 3693996.,
      3713058., 3726396., 3739734., 3753072., 3772269., 3785634., 3798999.,
      3812364., 3831696., 3845088., 3858480., 3871872., 3676635., 3690054.,
      3703473., 3716892., 3736062., 3749508., 3762954., 3776400., 3795705.,
      3809178., 3822651., 3836124., 3855564., 3869064., 3882564., 3896064.,
      3744351., 3758094., 3771837., 3785580., 3805074., 3818844., 3832614.,
      3846384., 3866013., 3879810., 3893607., 3907404., 3927168., 3940992.,
      3954816., 3968640., 3766923., 3780774., 3794625., 3808476., 3828078.,
      3841956., 3855834., 3869712., 3889449., 3903354., 3917259., 3931164.,
      3951036., 3964968., 3978900., 3992832., 3789495., 3803454., 3817413.,
      3831372., 3851082., 3865068., 3879054., 3893040., 3912885., 3926898.,
      3940911., 3954924., 3974904., 3988944., 4002984., 4017024., 3812067.,
      3826134., 3840201., 3854268., 3874086., 3888180., 3902274., 3916368.,
      3936321., 3950442., 3964563., 3978684., 3998772., 4012920., 4027068.,
      4041216., 3834639., 3848814., 3862989., 3877164., 3897090., 3911292.,
      3925494., 3939696., 3959757., 3973986., 3988215., 4002444., 4022640.,
      4036896., 4051152., 4065408., 3857211., 3871494., 3885777., 3900060.,
      3920094., 3934404., 3948714., 3963024., 3983193., 3997530., 4011867.,
      4026204., 4046508., 4060872., 4075236., 4089600., 3879783., 3894174.,
      3908565., 3922956., 3943098., 3957516., 3971934., 3986352., 4006629.,
      4021074., 4035519., 4049964., 4070376., 4084848., 4099320., 4113792.,
      3947499., 3962214., 3976929., 3991644., 4012110., 4026852., 4041594.,
      4056336., 4076937., 4091706., 4106475., 4121244., 4141980., 4156776.,
      4171572., 4186368., 3970071., 3984894., 3999717., 4014540., 4035114.,
      4049964., 4064814., 4079664., 4100373., 4115250., 4130127., 4145004.,
      4165848., 4180752., 4195656., 4210560., 3992643., 4007574., 4022505.,
      4037436., 4058118., 4073076., 4088034., 4102992., 4123809., 4138794.,
      4153779., 4168764., 4189716., 4204728., 4219740., 4234752., 4015215.,
      4030254., 4045293., 4060332., 4081122., 4096188., 4111254., 4126320.,
      4147245., 4162338., 4177431., 4192524., 4213584., 4228704., 4243824.,
      4258944., 4037787., 4052934., 4068081., 4083228., 4104126., 4119300.,
      4134474., 4149648., 4170681., 4185882., 4201083., 4216284., 4237452.,
      4252680., 4267908., 4283136., 4060359., 4075614., 4090869., 4106124.,
      4127130., 4142412., 4157694., 4172976., 4194117., 4209426., 4224735.,
      4240044., 4261320., 4276656., 4291992., 4307328., 4082931., 4098294.,
      4113657., 4129020., 4150134., 4165524., 4180914., 4196304., 4217553.,
      4232970., 4248387., 4263804., 4285188., 4300632., 4316076., 4331520.,
      4150647., 4166334., 4182021., 4197708., 4219146., 4234860., 4250574.,
      4266288., 4287861., 4303602., 4319343., 4335084., 4356792., 4372560.,
      4388328., 4404096., 4173219., 4189014., 4204809., 4220604., 4242150.,
      4257972., 4273794., 4289616., 4311297., 4327146., 4342995., 4358844.,
      4380660., 4396536., 4412412., 4428288., 4195791., 4211694., 4227597.,
      4243500., 4265154., 4281084., 4297014., 4312944., 4334733., 4350690.,
      4366647., 4382604., 4404528., 4420512., 4436496., 4452480., 4218363.,
      4234374., 4250385., 4266396., 4288158., 4304196., 4320234., 4336272.,
      4358169., 4374234., 4390299., 4406364., 4428396., 4444488., 4460580.,
      4476672., 4240935., 4257054., 4273173., 4289292., 4311162., 4327308.,
      4343454., 4359600., 4381605., 4397778., 4413951., 4430124., 4452264.,
      4468464., 4484664., 4500864., 4263507., 4279734., 4295961., 4312188.,
      4334166., 4350420., 4366674., 4382928., 4405041., 4421322., 4437603.,
      4453884., 4476132., 4492440., 4508748., 4525056., 4286079., 4302414.,
      4318749., 4335084., 4357170., 4373532., 4389894., 4406256., 4428477.,
      4444866., 4461255., 4477644., 4500000., 4516416., 4532832., 4549248.};
  const std::array<int, 4> in_shape = {{3, 9, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2996742., 3427368., 3858570., 4290330., 3863430., 3436008., 3008082.,
      3532704., 4039476., 4546710., 5054385., 4550490., 4046196., 3541524.,
      4073496., 4656864., 5240520., 5824440., 5242680., 4660704., 4078536.,
      4617018., 5277132., 5937300., 6597495., 5937300., 5277132., 4617018.,
      4078536., 4660704., 5242680., 5824440., 5240520., 4656864., 4073496.,
      3541524., 4046196., 4550490., 5054385., 4546710., 4039476., 3532704.,
      3008082., 3436008., 3863430., 4290330., 3858570., 3427368., 2996742.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      95190.,  95856.,  96522.,  97188.,  97854.,  98520.,  99186.,
      101850., 102516., 103182., 103848., 104514., 105180., 105846.,
      108510., 109176., 109842., 110508., 111174., 111840., 112506.,
      115170., 115836., 116502., 117168., 117834., 118500., 119166.,
      121830., 122496., 123162., 123828., 124494., 125160., 125826.,
      128490., 129156., 129822., 130488., 131154., 131820., 132486.,
      135150., 135816., 136482., 137148., 137814., 138480., 139146.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5978490.,  5993484.,  6837528.,  6854736.,  7697700.,  7717140.,
      8558970.,  8580660.,  7707258.,  7726860.,  6854520.,  6872016.,
      6000792.,  6016164.,  7047180.,  7065408.,  8058036.,  8078952.,
      9069795.,  9093420.,  10082415., 10108770., 9077166.,  9100980.,
      8071140.,  8092392.,  7064379.,  7083048.,  8125320.,  8146992.,
      9288864.,  9313728.,  10452960., 10481040., 11617560., 11648880.,
      10457064., 10485360., 9296160.,  9321408.,  8134896.,  8157072.,
      9208710.,  9234036.,  10525212., 10554264., 11841795., 11874600.,
      13158405., 13194990., 11841552., 11874600., 10524780., 10554264.,
      9208143.,  9234036.,  8133720.,  8157072.,  9294624.,  9321408.,
      10455120., 10485360., 11615160., 11648880., 10450584., 10481040.,
      9286560.,  9313728.,  8123136.,  8146992.,  7061880.,  7083048.,
      8068116.,  8092392.,  9073575.,  9100980.,  10078215., 10108770.,
      9065826.,  9093420.,  8054340.,  8078952.,  7043799.,  7065408.,
      5997390.,  6016164.,  6850488.,  6872016.,  7702560.,  7726860.,
      8553570.,  8580660.,  7692678.,  7717140.,  6832920.,  6854736.,
      5974332.,  5993484.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      186690., 190380., 187986., 191712., 189282., 193044., 190578., 194376.,
      191874., 195708., 193170., 197040., 194466., 198372., 199650., 203700.,
      200946., 205032., 202242., 206364., 203538., 207696., 204834., 209028.,
      206130., 210360., 207426., 211692., 212610., 217020., 213906., 218352.,
      215202., 219684., 216498., 221016., 217794., 222348., 219090., 223680.,
      220386., 225012., 225570., 230340., 226866., 231672., 228162., 233004.,
      229458., 234336., 230754., 235668., 232050., 237000., 233346., 238332.,
      238530., 243660., 239826., 244992., 241122., 246324., 242418., 247656.,
      243714., 248988., 245010., 250320., 246306., 251652., 251490., 256980.,
      252786., 258312., 254082., 259644., 255378., 260976., 256674., 262308.,
      257970., 263640., 259266., 264972., 264450., 270300., 265746., 271632.,
      267042., 272964., 268338., 274296., 269634., 275628., 270930., 276960.,
      272226., 278292.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3826274., 3841268., 3856262., 3871256., 4435192., 4452400., 4469608.,
      4486816., 5040216., 5059656., 5079096., 5098536., 5641274., 5662964.,
      5684654., 5706344., 5167714., 5187316., 5206918., 5226520., 4699288.,
      4716784., 4734280., 4751776., 4184356., 4199728., 4215100., 4230472.,
      4840164., 4858392., 4876620., 4894848., 5594548., 5615464., 5636380.,
      5657296., 6344061., 6367686., 6391311., 6414936., 7088619., 7114974.,
      7141329., 7167684., 6472790., 6496604., 6520418., 6544232., 5863108.,
      5884360., 5905612., 5926864., 5202825., 5221494., 5240163., 5258832.,
      5836904., 5858576., 5880248., 5901920., 6733344., 6758208., 6783072.,
      6807936., 7623696., 7651776., 7679856., 7707936., 8507864., 8539184.,
      8570504., 8601824., 7751496., 7779792., 7808088., 7836384., 7002528.,
      7027776., 7053024., 7078272., 6199104., 6221280., 6243456., 6265632.,
      6808094., 6833420., 6858746., 6884072., 7841980., 7871032., 7900084.,
      7929136., 8868321., 8901126., 8933931., 8966736., 9887009., 9923594.,
      9960179., 9996764., 8993032., 9026080., 9059128., 9092176., 8107948.,
      8137432., 8166916., 8196400., 7164793., 7190686., 7216579., 7242472.,
      6715256., 6738608., 6761960., 6785312., 7742368., 7769152., 7795936.,
      7822720., 8762496., 8792736., 8822976., 8853216., 9775544., 9809264.,
      9842984., 9876704., 8902712., 8933168., 8963624., 8994080., 8038176.,
      8065344., 8092512., 8119680., 7109840., 7133696., 7157552., 7181408.,
      6318656., 6339824., 6360992., 6382160., 7215956., 7240232., 7264508.,
      7288784., 8106561., 8133966., 8161371., 8188776., 8990387., 9020942.,
      9051497., 9082052., 8120058., 8147652., 8175246., 8202840., 7257188.,
      7281800., 7306412., 7331024., 6324549., 6346158., 6367767., 6389376.,
      5464902., 5483676., 5502450., 5521224., 6243672., 6265200., 6286728.,
      6308256., 7016276., 7040576., 7064876., 7089176., 7782642., 7809732.,
      7836822., 7863912., 7039870., 7064332., 7088794., 7113256., 6303992.,
      6325808., 6347624., 6369440., 5492648., 5511800., 5530952., 5550104.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      369690., 373380., 377070., 380760., 372246., 375972., 379698., 383424.,
      374802., 378564., 382326., 386088., 377358., 381156., 384954., 388752.,
      379914., 383748., 387582., 391416., 382470., 386340., 390210., 394080.,
      385026., 388932., 392838., 396744., 395250., 399300., 403350., 407400.,
      397806., 401892., 405978., 410064., 400362., 404484., 408606., 412728.,
      402918., 407076., 411234., 415392., 405474., 409668., 413862., 418056.,
      408030., 412260., 416490., 420720., 410586., 414852., 419118., 423384.,
      420810., 425220., 429630., 434040., 423366., 427812., 432258., 436704.,
      425922., 430404., 434886., 439368., 428478., 432996., 437514., 442032.,
      431034., 435588., 440142., 444696., 433590., 438180., 442770., 447360.,
      436146., 440772., 445398., 450024., 446370., 451140., 455910., 460680.,
      448926., 453732., 458538., 463344., 451482., 456324., 461166., 466008.,
      454038., 458916., 463794., 468672., 456594., 461508., 466422., 471336.,
      459150., 464100., 469050., 474000., 461706., 466692., 471678., 476664.,
      471930., 477060., 482190., 487320., 474486., 479652., 484818., 489984.,
      477042., 482244., 487446., 492648., 479598., 484836., 490074., 495312.,
      482154., 487428., 492702., 497976., 484710., 490020., 495330., 500640.,
      487266., 492612., 497958., 503304., 497490., 502980., 508470., 513960.,
      500046., 505572., 511098., 516624., 502602., 508164., 513726., 519288.,
      505158., 510756., 516354., 521952., 507714., 513348., 518982., 524616.,
      510270., 515940., 521610., 527280., 512826., 518532., 524238., 529944.,
      523050., 528900., 534750., 540600., 525606., 531492., 537378., 543264.,
      528162., 534084., 540006., 545928., 530718., 536676., 542634., 548592.,
      533274., 539268., 545262., 551256., 535830., 541860., 547890., 553920.,
      538386., 544452., 550518., 556584.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1794514., 1825304., 2092112., 2127520., 2373838., 2413608., 2656260.,
      2700392., 2458046., 2498072., 2260816., 2296736., 2013186., 2044744.,
      2425049., 2461824., 2817480., 2859728., 3199215., 3246680., 3581690.,
      3634372., 3299071., 3346792., 3017416., 3060176., 2680233., 2717776.,
      3103832., 3146336., 3591616., 3640192., 4074152., 4128544., 4557744.,
      4617952., 4184168., 4238560., 3811776., 3860352., 3378968., 3421472.,
      3803775., 3850472., 4400824., 4454192., 4997833., 5057616., 5595974.,
      5662172., 4997833., 5057616., 4400824., 4454192., 3803775., 3850472.,
      3378968., 3421472., 3811776., 3860352., 4184168., 4238560., 4557744.,
      4617952., 4074152., 4128544., 3591616., 3640192., 3103832., 3146336.,
      2680233., 2717776., 3017416., 3060176., 3299071., 3346792., 3581690.,
      3634372., 3199215., 3246680., 2817480., 2859728., 2425049., 2461824.,
      2013186., 2044744., 2260816., 2296736., 2458046., 2498072., 2656260.,
      2700392., 2373838., 2413608., 2092112., 2127520., 1794514., 1825304.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      372084., 380760., 374676., 383424., 377268., 386088., 379860., 388752.,
      382452., 391416., 385044., 394080., 387636., 396744., 398004., 407400.,
      400596., 410064., 403188., 412728., 405780., 415392., 408372., 418056.,
      410964., 420720., 413556., 423384., 423924., 434040., 426516., 436704.,
      429108., 439368., 431700., 442032., 434292., 444696., 436884., 447360.,
      439476., 450024., 449844., 460680., 452436., 463344., 455028., 466008.,
      457620., 468672., 460212., 471336., 462804., 474000., 465396., 476664.,
      475764., 487320., 478356., 489984., 480948., 492648., 483540., 495312.,
      486132., 497976., 488724., 500640., 491316., 503304., 501684., 513960.,
      504276., 516624., 506868., 519288., 509460., 521952., 512052., 524616.,
      514644., 527280., 517236., 529944., 527604., 540600., 530196., 543264.,
      532788., 545928., 535380., 548592., 537972., 551256., 540564., 553920.,
      543156., 556584.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1730302., 1745828., 1777420., 1793072., 2015936., 2033824., 2070224.,
      2088256., 2265950., 2285980., 2326896., 2347088., 2513224., 2535432.,
      2580828., 2603216., 2314234., 2334332., 2375436., 2395696., 2120832.,
      2138784., 2175632., 2193728., 1881706., 1897476., 1929848., 1945744.,
      2167773., 2186162., 2223256., 2241792., 2521296., 2542480., 2585144.,
      2606496., 2848521., 2872286., 2920222., 2944176., 3172064., 3198452.,
      3251618., 3278216., 2913711., 2937598., 2985668., 3009744., 2661936.,
      2683280., 2726296., 2747808., 2360331., 2379090., 2416838., 2435744.,
      2629896., 2651312., 2693232., 2714816., 3042304., 3066752., 3114688.,
      3139328., 3465160., 3492432., 3546336., 3573824., 3884448., 3914592.,
      3974416., 4004800., 3564952., 3592144., 3646128., 3673536., 3253504.,
      3277696., 3325888., 3350272., 2888600., 2909744., 2951936., 2973248.,
      3262687., 3286014., 3332596., 3356112., 3781968., 3808624., 3861864.,
      3888736., 4326715., 4356498., 4416342., 4446368., 4867528., 4900492.,
      4966886., 5000120., 4332885., 4362642., 4422512., 4452512., 3806704.,
      3833200., 3886600., 3913312., 3287921., 3311102., 3357830., 3381200.,
      2874216., 2895408., 2937552., 2958912., 3245312., 3269504., 3317696.,
      3342080., 3592296., 3619280., 3673472., 3700672., 3935968., 3965792.,
      4025936., 4056000., 3514168., 3541072., 3595344., 3622464., 3100160.,
      3124096., 3172544., 3196672., 2687736., 2708656., 2751072., 2772160.,
      2325637., 2344274., 2381632., 2400416., 2634384., 2655632., 2698232.,
      2719648., 2934945., 2958590., 3006390., 3030224., 3232784., 3258868.,
      3311826., 3338120., 2894855., 2918366., 2966044., 2989744., 2563568.,
      2584464., 2626904., 2647968., 2227571., 2245810., 2282798., 2301184.,
      1884630., 1900292., 1932004., 1947792., 2108672., 2126496., 2162448.,
      2180416., 2340422., 2360188., 2400344., 2420272., 2570008., 2591752.,
      2636076., 2658000., 2296098., 2315676., 2355508., 2375248., 2027712.,
      2045088., 2080464., 2097984., 1748354., 1763492., 1794192., 1809456.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      736824.,  744168.,  754140.,  761520.,  741936.,  749352.,  759396.,
      766848.,  747048.,  754536.,  764652.,  772176.,  752160.,  759720.,
      769908.,  777504.,  757272.,  764904.,  775164.,  782832.,  762384.,
      770088.,  780420.,  788160.,  767496.,  775272.,  785676.,  793488.,
      787944.,  796008.,  806700.,  814800.,  793056.,  801192.,  811956.,
      820128.,  798168.,  806376.,  817212.,  825456.,  803280.,  811560.,
      822468.,  830784.,  808392.,  816744.,  827724.,  836112.,  813504.,
      821928.,  832980.,  841440.,  818616.,  827112.,  838236.,  846768.,
      839064.,  847848.,  859260.,  868080.,  844176.,  853032.,  864516.,
      873408.,  849288.,  858216.,  869772.,  878736.,  854400.,  863400.,
      875028.,  884064.,  859512.,  868584.,  880284.,  889392.,  864624.,
      873768.,  885540.,  894720.,  869736.,  878952.,  890796.,  900048.,
      890184.,  899688.,  911820.,  921360.,  895296.,  904872.,  917076.,
      926688.,  900408.,  910056.,  922332.,  932016.,  905520.,  915240.,
      927588.,  937344.,  910632.,  920424.,  932844.,  942672.,  915744.,
      925608.,  938100.,  948000.,  920856.,  930792.,  943356.,  953328.,
      941304.,  951528.,  964380.,  974640.,  946416.,  956712.,  969636.,
      979968.,  951528.,  961896.,  974892.,  985296.,  956640.,  967080.,
      980148.,  990624.,  961752.,  972264.,  985404.,  995952.,  966864.,
      977448.,  990660.,  1001280., 971976.,  982632.,  995916.,  1006608.,
      992424.,  1003368., 1016940., 1027920., 997536.,  1008552., 1022196.,
      1033248., 1002648., 1013736., 1027452., 1038576., 1007760., 1018920.,
      1032708., 1043904., 1012872., 1024104., 1037964., 1049232., 1017984.,
      1029288., 1043220., 1054560., 1023096., 1034472., 1048476., 1059888.,
      1043544., 1055208., 1069500., 1081200., 1048656., 1060392., 1074756.,
      1086528., 1053768., 1065576., 1080012., 1091856., 1058880., 1070760.,
      1085268., 1097184., 1063992., 1075944., 1090524., 1102512., 1069104.,
      1081128., 1095780., 1107840., 1074216., 1086312., 1101036., 1113168.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2048854., 2064380., 2079906., 2095432., 2126580., 2142232., 2157884.,
      2173536., 2372512., 2390400., 2408288., 2426176., 2462000., 2480032.,
      2498064., 2516096., 2620286., 2640316., 2660346., 2680376., 2720768.,
      2740960., 2761152., 2781344., 2857936., 2880144., 2902352., 2924560.,
      2969412., 2991800., 3014188., 3036576., 2591090., 2611188., 2631286.,
      2651384., 2691828., 2712088., 2732348., 2752608., 2339552., 2357504.,
      2375456., 2393408., 2429552., 2447648., 2465744., 2483840., 2052154.,
      2067924., 2083694., 2099464., 2131160., 2147056., 2162952., 2178848.,
      2258149., 2276538., 2294927., 2313316., 2350792., 2369328., 2387864.,
      2406400., 2616032., 2637216., 2658400., 2679584., 2722568., 2743920.,
      2765272., 2786624., 2921277., 2945042., 2968807., 2992572., 3040938.,
      3064892., 3088846., 3112800., 3213996., 3240384., 3266772., 3293160.,
      3346782., 3373380., 3399978., 3426576., 2916111., 2939998., 2963885.,
      2987772., 3036028., 3060104., 3084180., 3108256., 2636032., 2657376.,
      2678720., 2700064., 2743080., 2764592., 2786104., 2807616., 2317519.,
      2336278., 2355037., 2373796., 2411442., 2430348., 2449254., 2468160.,
      2480744., 2502160., 2523576., 2544992., 2587280., 2608864., 2630448.,
      2652032., 2849920., 2874368., 2898816., 2923264., 2971456., 2996096.,
      3020736., 3045376., 3217672., 3244944., 3272216., 3299488., 3353696.,
      3381184., 3408672., 3436160., 3572096., 3602240., 3632384., 3662528.,
      3722608., 3752992., 3783376., 3813760., 3243768., 3270960., 3298152.,
      3325344., 3379280., 3406688., 3434096., 3461504., 2936704., 2960896.,
      2985088., 3009280., 3057216., 3081600., 3105984., 3130368., 2589592.,
      2610736., 2631880., 2653024., 2694848., 2716160., 2737472., 2758784.,
      2951583., 2974910., 2998237., 3021564., 3068428., 3091944., 3115460.,
      3138976., 3440256., 3466912., 3493568., 3520224., 3573720., 3600592.,
      3627464., 3654336., 3957023., 3986806., 4016589., 4046372., 4106594.,
      4136620., 4166646., 4196672., 4459212., 4492176., 4525140., 4558104.,
      4624890., 4658124., 4691358., 4724592., 3959405., 3989162., 4018919.,
      4048676., 4108720., 4138720., 4168720., 4198720., 3482720., 3509216.,
      3535712., 3562208., 3615672., 3642384., 3669096., 3695808., 3028309.,
      3051490., 3074671., 3097852., 3144642., 3168012., 3191382., 3214752.,
      2509832., 2531024., 2552216., 2573408., 2615344., 2636704., 2658064.,
      2679424., 2862976., 2887168., 2911360., 2935552., 2983488., 3007872.,
      3032256., 3056640., 3211112., 3238096., 3265080., 3292064., 3346112.,
      3373312., 3400512., 3427712., 3546432., 3576256., 3606080., 3635904.,
      3695920., 3725984., 3756048., 3786112., 3175512., 3202416., 3229320.,
      3256224., 3310256., 3337376., 3364496., 3391616., 2825856., 2849792.,
      2873728., 2897664., 2945856., 2969984., 2994112., 3018240., 2491448.,
      2512368., 2533288., 2554208., 2596448., 2617536., 2638624., 2659712.,
      2135613., 2154250., 2172887., 2191524., 2229024., 2247808., 2266592.,
      2285376., 2473504., 2494752., 2516000., 2537248., 2580040., 2601456.,
      2622872., 2644288., 2839269., 2862914., 2886559., 2910204., 2958418.,
      2982252., 3006086., 3029920., 3194428., 3220512., 3246596., 3272680.,
      3326190., 3352484., 3378778., 3405072., 2892343., 2915854., 2939365.,
      2962876., 3010980., 3034680., 3058380., 3082080., 2608704., 2629600.,
      2650496., 2671392., 2714216., 2735280., 2756344., 2777408., 2332327.,
      2350566., 2368805., 2387044., 2424458., 2442844., 2461230., 2479616.,
      1914494., 1930156., 1945818., 1961480., 1992732., 2008520., 2024308.,
      2040096., 2221152., 2238976., 2256800., 2274624., 2310128., 2328096.,
      2346064., 2364032., 2588502., 2608268., 2628034., 2647800., 2687704.,
      2707632., 2727560., 2747488., 2947392., 2969136., 2990880., 3012624.,
      3056820., 3078744., 3100668., 3122592., 2687690., 2707268., 2726846.,
      2746424., 2786124., 2805864., 2825604., 2845344., 2443680., 2461056.,
      2478432., 2495808., 2531120., 2548640., 2566160., 2583680., 2067938.,
      2083076., 2098214., 2113352., 2144128., 2159392., 2174656., 2189920.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1466304., 1473648., 1480992., 1488336., 1500900., 1508280., 1515660.,
      1523040., 1476456., 1483872., 1491288., 1498704., 1511340., 1518792.,
      1526244., 1533696., 1486608., 1494096., 1501584., 1509072., 1521780.,
      1529304., 1536828., 1544352., 1496760., 1504320., 1511880., 1519440.,
      1532220., 1539816., 1547412., 1555008., 1506912., 1514544., 1522176.,
      1529808., 1542660., 1550328., 1557996., 1565664., 1517064., 1524768.,
      1532472., 1540176., 1553100., 1560840., 1568580., 1576320., 1527216.,
      1534992., 1542768., 1550544., 1563540., 1571352., 1579164., 1586976.,
      1567824., 1575888., 1583952., 1592016., 1605300., 1613400., 1621500.,
      1629600., 1577976., 1586112., 1594248., 1602384., 1615740., 1623912.,
      1632084., 1640256., 1588128., 1596336., 1604544., 1612752., 1626180.,
      1634424., 1642668., 1650912., 1598280., 1606560., 1614840., 1623120.,
      1636620., 1644936., 1653252., 1661568., 1608432., 1616784., 1625136.,
      1633488., 1647060., 1655448., 1663836., 1672224., 1618584., 1627008.,
      1635432., 1643856., 1657500., 1665960., 1674420., 1682880., 1628736.,
      1637232., 1645728., 1654224., 1667940., 1676472., 1685004., 1693536.,
      1669344., 1678128., 1686912., 1695696., 1709700., 1718520., 1727340.,
      1736160., 1679496., 1688352., 1697208., 1706064., 1720140., 1729032.,
      1737924., 1746816., 1689648., 1698576., 1707504., 1716432., 1730580.,
      1739544., 1748508., 1757472., 1699800., 1708800., 1717800., 1726800.,
      1741020., 1750056., 1759092., 1768128., 1709952., 1719024., 1728096.,
      1737168., 1751460., 1760568., 1769676., 1778784., 1720104., 1729248.,
      1738392., 1747536., 1761900., 1771080., 1780260., 1789440., 1730256.,
      1739472., 1748688., 1757904., 1772340., 1781592., 1790844., 1800096.,
      1770864., 1780368., 1789872., 1799376., 1814100., 1823640., 1833180.,
      1842720., 1781016., 1790592., 1800168., 1809744., 1824540., 1834152.,
      1843764., 1853376., 1791168., 1800816., 1810464., 1820112., 1834980.,
      1844664., 1854348., 1864032., 1801320., 1811040., 1820760., 1830480.,
      1845420., 1855176., 1864932., 1874688., 1811472., 1821264., 1831056.,
      1840848., 1855860., 1865688., 1875516., 1885344., 1821624., 1831488.,
      1841352., 1851216., 1866300., 1876200., 1886100., 1896000., 1831776.,
      1841712., 1851648., 1861584., 1876740., 1886712., 1896684., 1906656.,
      1872384., 1882608., 1892832., 1903056., 1918500., 1928760., 1939020.,
      1949280., 1882536., 1892832., 1903128., 1913424., 1928940., 1939272.,
      1949604., 1959936., 1892688., 1903056., 1913424., 1923792., 1939380.,
      1949784., 1960188., 1970592., 1902840., 1913280., 1923720., 1934160.,
      1949820., 1960296., 1970772., 1981248., 1912992., 1923504., 1934016.,
      1944528., 1960260., 1970808., 1981356., 1991904., 1923144., 1933728.,
      1944312., 1954896., 1970700., 1981320., 1991940., 2002560., 1933296.,
      1943952., 1954608., 1965264., 1981140., 1991832., 2002524., 2013216.,
      1973904., 1984848., 1995792., 2006736., 2022900., 2033880., 2044860.,
      2055840., 1984056., 1995072., 2006088., 2017104., 2033340., 2044392.,
      2055444., 2066496., 1994208., 2005296., 2016384., 2027472., 2043780.,
      2054904., 2066028., 2077152., 2004360., 2015520., 2026680., 2037840.,
      2054220., 2065416., 2076612., 2087808., 2014512., 2025744., 2036976.,
      2048208., 2064660., 2075928., 2087196., 2098464., 2024664., 2035968.,
      2047272., 2058576., 2075100., 2086440., 2097780., 2109120., 2034816.,
      2046192., 2057568., 2068944., 2085540., 2096952., 2108364., 2119776.,
      2075424., 2087088., 2098752., 2110416., 2127300., 2139000., 2150700.,
      2162400., 2085576., 2097312., 2109048., 2120784., 2137740., 2149512.,
      2161284., 2173056., 2095728., 2107536., 2119344., 2131152., 2148180.,
      2160024., 2171868., 2183712., 2105880., 2117760., 2129640., 2141520.,
      2158620., 2170536., 2182452., 2194368., 2116032., 2127984., 2139936.,
      2151888., 2169060., 2181048., 2193036., 2205024., 2126184., 2138208.,
      2150232., 2162256., 2179500., 2191560., 2203620., 2215680., 2136336.,
      2148432., 2160528., 2172624., 2189940., 2202072., 2214204., 2226336.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1578806., 1610056., 1641558., 1673312., 1850448., 1886528., 1922896.,
      1959552., 2092138., 2132792., 2173770., 2215072., 2336612., 2381840.,
      2427428., 2473376., 2137386., 2178296., 2219530., 2261088., 1941072.,
      1977664., 2014544., 2051712., 1738742., 1771016., 1803542., 1836320.,
      2010319., 2047332., 2084639., 2122240., 2349320., 2391840., 2434696.,
      2477888., 2668833., 2716604., 2764753., 2813280., 2991306., 3044328.,
      3097770., 3151632., 2742625., 2790396., 2838545., 2887072., 2497800.,
      2540320., 2583176., 2626368., 2227471., 2264740., 2302303., 2340160.,
      2522952., 2564448., 2606280., 2648448., 2948544., 2995968., 3043776.,
      3091968., 3418680., 3472032., 3525816., 3580032., 3893040., 3952320.,
      4012080., 4072320., 3596600., 3649952., 3703736., 3757952., 3304896.,
      3352320., 3400128., 3448320., 2968136., 3009632., 3051464., 3093632.,
      3568993., 3615228., 3661841., 3708832., 4181112., 4233952., 4287224.,
      4340928., 4858607., 4918052., 4977983., 5038400., 5540630., 5606680.,
      5673270., 5740400., 4858607., 4918052., 4977983., 5038400., 4181112.,
      4233952., 4287224., 4340928., 3568993., 3615228., 3661841., 3708832.,
      2968136., 3009632., 3051464., 3093632., 3304896., 3352320., 3400128.,
      3448320., 3596600., 3649952., 3703736., 3757952., 3893040., 3952320.,
      4012080., 4072320., 3418680., 3472032., 3525816., 3580032., 2948544.,
      2995968., 3043776., 3091968., 2522952., 2564448., 2606280., 2648448.,
      2227471., 2264740., 2302303., 2340160., 2497800., 2540320., 2583176.,
      2626368., 2742625., 2790396., 2838545., 2887072., 2991306., 3044328.,
      3097770., 3151632., 2668833., 2716604., 2764753., 2813280., 2349320.,
      2391840., 2434696., 2477888., 2010319., 2047332., 2084639., 2122240.,
      1738742., 1771016., 1803542., 1836320., 1941072., 1977664., 2014544.,
      2051712., 2137386., 2178296., 2219530., 2261088., 2336612., 2381840.,
      2427428., 2473376., 2092138., 2132792., 2173770., 2215072., 1850448.,
      1886528., 1922896., 1959552., 1578806., 1610056., 1641558., 1673312.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1471092., 1488336., 1505652., 1523040., 1481316., 1498704., 1516164.,
      1533696., 1491540., 1509072., 1526676., 1544352., 1501764., 1519440.,
      1537188., 1555008., 1511988., 1529808., 1547700., 1565664., 1522212.,
      1540176., 1558212., 1576320., 1532436., 1550544., 1568724., 1586976.,
      1573332., 1592016., 1610772., 1629600., 1583556., 1602384., 1621284.,
      1640256., 1593780., 1612752., 1631796., 1650912., 1604004., 1623120.,
      1642308., 1661568., 1614228., 1633488., 1652820., 1672224., 1624452.,
      1643856., 1663332., 1682880., 1634676., 1654224., 1673844., 1693536.,
      1675572., 1695696., 1715892., 1736160., 1685796., 1706064., 1726404.,
      1746816., 1696020., 1716432., 1736916., 1757472., 1706244., 1726800.,
      1747428., 1768128., 1716468., 1737168., 1757940., 1778784., 1726692.,
      1747536., 1768452., 1789440., 1736916., 1757904., 1778964., 1800096.,
      1777812., 1799376., 1821012., 1842720., 1788036., 1809744., 1831524.,
      1853376., 1798260., 1820112., 1842036., 1864032., 1808484., 1830480.,
      1852548., 1874688., 1818708., 1840848., 1863060., 1885344., 1828932.,
      1851216., 1873572., 1896000., 1839156., 1861584., 1884084., 1906656.,
      1880052., 1903056., 1926132., 1949280., 1890276., 1913424., 1936644.,
      1959936., 1900500., 1923792., 1947156., 1970592., 1910724., 1934160.,
      1957668., 1981248., 1920948., 1944528., 1968180., 1991904., 1931172.,
      1954896., 1978692., 2002560., 1941396., 1965264., 1989204., 2013216.,
      1982292., 2006736., 2031252., 2055840., 1992516., 2017104., 2041764.,
      2066496., 2002740., 2027472., 2052276., 2077152., 2012964., 2037840.,
      2062788., 2087808., 2023188., 2048208., 2073300., 2098464., 2033412.,
      2058576., 2083812., 2109120., 2043636., 2068944., 2094324., 2119776.,
      2084532., 2110416., 2136372., 2162400., 2094756., 2120784., 2146884.,
      2173056., 2104980., 2131152., 2157396., 2183712., 2115204., 2141520.,
      2167908., 2194368., 2125428., 2151888., 2178420., 2205024., 2135652.,
      2162256., 2188932., 2215680., 2145876., 2172624., 2199444., 2226336.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2135710., 2151020., 2181700., 2197136., 2228194., 2243756., 2275192.,
      2290880., 2516336., 2534048., 2569408., 2587264., 2623056., 2641056.,
      2677280., 2695424., 2761722., 2781652., 2821620., 2841712., 2882166.,
      2902420., 2943360., 2963776., 3003388., 3025608., 3070112., 3092512.,
      3137556., 3160136., 3205720., 3228480., 2666482., 2686548., 2726636.,
      2746864., 2787438., 2807828., 2848888., 2869440., 2343664., 2361504.,
      2397248., 2415232., 2451408., 2469536., 2506144., 2524416., 2053942.,
      2069740., 2101212., 2117136., 2148986., 2165036., 2197264., 2213440.,
      2196103., 2214558., 2251806., 2270408., 2308097., 2326846., 2364976.,
      2383872., 2509112., 2530320., 2572992., 2594368., 2637544., 2659088.,
      2702768., 2724480., 2782549., 2806338., 2854350., 2878328., 2926907.,
      2951074., 3000220., 3024576., 3051582., 3078036., 3131304., 3157968.,
      3211866., 3238740., 3293268., 3320352., 2725089., 2748866., 2796634.,
      2820600., 2868935., 2893090., 2941992., 2966336., 2415608., 2436624.,
      2478976., 2500160., 2543016., 2564368., 2607728., 2629248., 2111523.,
      2129950., 2166970., 2185544., 2223005., 2241726., 2279628., 2298496.,
      2281960., 2303120., 2344816., 2366144., 2408344., 2429840., 2472544.,
      2494208., 2621248., 2645376., 2692864., 2717184., 2765248., 2789760.,
      2838400., 2863104., 3004728., 3031664., 3085104., 3112256., 3166344.,
      3193712., 3248448., 3276032., 3384272., 3414112., 3473408., 3503488.,
      3563504., 3593824., 3654560., 3685120., 3079640., 3106416., 3159504.,
      3186496., 3240232., 3267440., 3321824., 3349248., 2794816., 2818432.,
      2865408., 2889216., 2936768., 2960768., 3008896., 3033088., 2487560.,
      2508176., 2549136., 2569920., 2611384., 2632336., 2674304., 2695424.,
      3051329., 3074498., 3120826., 3144184., 3191079., 3214626., 3262088.,
      3285824., 3575688., 3602160., 3655040., 3681728., 3735256., 3762160.,
      3816336., 3843456., 4184867., 4214494., 4274074., 4303944., 4364253.,
      4394366., 4455404., 4485760., 4789682., 4822572., 4888744., 4921904.,
      4988886., 5022316., 5090108., 5123808., 4165207., 4194782., 4254158.,
      4283976., 4344081., 4374142., 4434976., 4465280., 3562184., 3588336.,
      3641024., 3667392., 3720728., 3747312., 3801296., 3828096., 3038821.,
      3061698., 3107806., 3130872., 3177547., 3200802., 3248044., 3271488.,
      2516392., 2537104., 2578224., 2599104., 2640728., 2661776., 2703904.,
      2725120., 2811200., 2834816., 2881792., 2905600., 2953152., 2977152.,
      3025280., 3049472., 3102072., 3128432., 3181424., 3208000., 3261640.,
      3288432., 3342720., 3369728., 3390032., 3419232., 3478144., 3507584.,
      3567216., 3596896., 3657248., 3687168., 2987800., 3014000., 3066896.,
      3093312., 3146856., 3173488., 3227680., 3254528., 2605376., 2628480.,
      2675456., 2698752., 2746304., 2769792., 2817920., 2841600., 2270152.,
      2290320., 2331472., 2351808., 2393464., 2413968., 2456128., 2476800.,
      2147607., 2166302., 2203566., 2222408., 2260113., 2279102., 2317248.,
      2336384., 2461880., 2483216., 2525760., 2547264., 2590312., 2611984.,
      2655536., 2677376., 2813381., 2837186., 2885182., 2909176., 2957739.,
      2981922., 3031052., 3055424., 3162270., 3188628., 3241992., 3268560.,
      3322554., 3349332., 3403956., 3430944., 2866513., 2890306., 2938314.,
      2962296., 3010871., 3035042., 3084184., 3108544., 2587000., 2608144.,
      2650880., 2672192., 2715432., 2736912., 2780656., 2802304., 2301619.,
      2320030., 2357322., 2375880., 2413613., 2432318., 2470492., 2489344.,
      1961998., 1978348., 2010036., 2026512., 2058578., 2075180., 2107624.,
      2124352., 2284528., 2303136., 2339136., 2357888., 2394320., 2413216.,
      2450080., 2469120., 2685322., 2706004., 2746500., 2767344., 2808326.,
      2829332., 2870800., 2891968., 3083676., 3106504., 3151424., 3174432.,
      3219892., 3243080., 3289080., 3312448., 2838914., 2859476., 2899836.,
      2920560., 2961406., 2982292., 3023624., 3044672., 2609008., 2627232.,
      2663104., 2681472., 2717776., 2736288., 2773024., 2791680., 2164902.,
      2180716., 2211916., 2227856., 2259434., 2275500., 2307456., 2323648.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2927532., 2942184., 2961984., 2976672., 2996580., 3011304., 3031320.,
      3046080., 2947836., 2962632., 2982576., 2997408., 3017460., 3032328.,
      3052488., 3067392., 2968140., 2983080., 3003168., 3018144., 3038340.,
      3053352., 3073656., 3088704., 2988444., 3003528., 3023760., 3038880.,
      3059220., 3074376., 3094824., 3110016., 3008748., 3023976., 3044352.,
      3059616., 3080100., 3095400., 3115992., 3131328., 3029052., 3044424.,
      3064944., 3080352., 3100980., 3116424., 3137160., 3152640., 3049356.,
      3064872., 3085536., 3101088., 3121860., 3137448., 3158328., 3173952.,
      3130572., 3146664., 3167904., 3184032., 3205380., 3221544., 3243000.,
      3259200., 3150876., 3167112., 3188496., 3204768., 3226260., 3242568.,
      3264168., 3280512., 3171180., 3187560., 3209088., 3225504., 3247140.,
      3263592., 3285336., 3301824., 3191484., 3208008., 3229680., 3246240.,
      3268020., 3284616., 3306504., 3323136., 3211788., 3228456., 3250272.,
      3266976., 3288900., 3305640., 3327672., 3344448., 3232092., 3248904.,
      3270864., 3287712., 3309780., 3326664., 3348840., 3365760., 3252396.,
      3269352., 3291456., 3308448., 3330660., 3347688., 3370008., 3387072.,
      3333612., 3351144., 3373824., 3391392., 3414180., 3431784., 3454680.,
      3472320., 3353916., 3371592., 3394416., 3412128., 3435060., 3452808.,
      3475848., 3493632., 3374220., 3392040., 3415008., 3432864., 3455940.,
      3473832., 3497016., 3514944., 3394524., 3412488., 3435600., 3453600.,
      3476820., 3494856., 3518184., 3536256., 3414828., 3432936., 3456192.,
      3474336., 3497700., 3515880., 3539352., 3557568., 3435132., 3453384.,
      3476784., 3495072., 3518580., 3536904., 3560520., 3578880., 3455436.,
      3473832., 3497376., 3515808., 3539460., 3557928., 3581688., 3600192.,
      3536652., 3555624., 3579744., 3598752., 3622980., 3642024., 3666360.,
      3685440., 3556956., 3576072., 3600336., 3619488., 3643860., 3663048.,
      3687528., 3706752., 3577260., 3596520., 3620928., 3640224., 3664740.,
      3684072., 3708696., 3728064., 3597564., 3616968., 3641520., 3660960.,
      3685620., 3705096., 3729864., 3749376., 3617868., 3637416., 3662112.,
      3681696., 3706500., 3726120., 3751032., 3770688., 3638172., 3657864.,
      3682704., 3702432., 3727380., 3747144., 3772200., 3792000., 3658476.,
      3678312., 3703296., 3723168., 3748260., 3768168., 3793368., 3813312.,
      3739692., 3760104., 3785664., 3806112., 3831780., 3852264., 3878040.,
      3898560., 3759996., 3780552., 3806256., 3826848., 3852660., 3873288.,
      3899208., 3919872., 3780300., 3801000., 3826848., 3847584., 3873540.,
      3894312., 3920376., 3941184., 3800604., 3821448., 3847440., 3868320.,
      3894420., 3915336., 3941544., 3962496., 3820908., 3841896., 3868032.,
      3889056., 3915300., 3936360., 3962712., 3983808., 3841212., 3862344.,
      3888624., 3909792., 3936180., 3957384., 3983880., 4005120., 3861516.,
      3882792., 3909216., 3930528., 3957060., 3978408., 4005048., 4026432.,
      3942732., 3964584., 3991584., 4013472., 4040580., 4062504., 4089720.,
      4111680., 3963036., 3985032., 4012176., 4034208., 4061460., 4083528.,
      4110888., 4132992., 3983340., 4005480., 4032768., 4054944., 4082340.,
      4104552., 4132056., 4154304., 4003644., 4025928., 4053360., 4075680.,
      4103220., 4125576., 4153224., 4175616., 4023948., 4046376., 4073952.,
      4096416., 4124100., 4146600., 4174392., 4196928., 4044252., 4066824.,
      4094544., 4117152., 4144980., 4167624., 4195560., 4218240., 4064556.,
      4087272., 4115136., 4137888., 4165860., 4188648., 4216728., 4239552.,
      4145772., 4169064., 4197504., 4220832., 4249380., 4272744., 4301400.,
      4324800., 4166076., 4189512., 4218096., 4241568., 4270260., 4293768.,
      4322568., 4346112., 4186380., 4209960., 4238688., 4262304., 4291140.,
      4314792., 4343736., 4367424., 4206684., 4230408., 4259280., 4283040.,
      4312020., 4335816., 4364904., 4388736., 4226988., 4250856., 4279872.,
      4303776., 4332900., 4356840., 4386072., 4410048., 4247292., 4271304.,
      4300464., 4324512., 4353780., 4377864., 4407240., 4431360., 4267596.,
      4291752., 4321056., 4345248., 4374660., 4398888., 4428408., 4452672.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x9x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1998958., 2014268., 2029578., 2044888., 2076220., 2091656., 2107092.,
      2122528., 2154490., 2170052., 2185614., 2201176., 2233768., 2249456.,
      2265144., 2280832., 2346928., 2364640., 2382352., 2400064., 2436032.,
      2453888., 2471744., 2489600., 2526288., 2544288., 2562288., 2580288.,
      2617696., 2635840., 2653984., 2672128., 2546202., 2566132., 2586062.,
      2605992., 2646380., 2666472., 2686564., 2706656., 2747854., 2768108.,
      2788362., 2808616., 2850624., 2871040., 2891456., 2911872., 2727724.,
      2749944., 2772164., 2794384., 2838976., 2861376., 2883776., 2906176.,
      2951668., 2974248., 2996828., 3019408., 3065800., 3088560., 3111320.,
      3134080., 2387842., 2407908., 2427974., 2448040., 2488020., 2508248.,
      2528476., 2548704., 2589494., 2609884., 2630274., 2650664., 2692264.,
      2712816., 2733368., 2753920., 2084400., 2102240., 2120080., 2137920.,
      2173504., 2191488., 2209472., 2227456., 2263760., 2281888., 2300016.,
      2318144., 2355168., 2373440., 2391712., 2409984., 1806006., 1821804.,
      1837602., 1853400., 1884548., 1900472., 1916396., 1932320., 1964098.,
      1980148., 1996198., 2012248., 2044656., 2060832., 2077008., 2093184.,
      2230263., 2248718., 2267173., 2285628., 2322834., 2341436., 2360038.,
      2378640., 2416581., 2435330., 2454079., 2472828., 2511504., 2530400.,
      2549296., 2568192., 2569112., 2590320., 2611528., 2632736., 2675200.,
      2696576., 2717952., 2739328., 2782632., 2804176., 2825720., 2847264.,
      2891408., 2913120., 2934832., 2956544., 2899645., 2923434., 2947223.,
      2971012., 3018738., 3042716., 3066694., 3090672., 3139343., 3163510.,
      3187677., 3211844., 3261460., 3285816., 3310172., 3334528., 3210022.,
      3236476., 3262930., 3289384., 3342120., 3368784., 3395448., 3422112.,
      3475898., 3502772., 3529646., 3556520., 3611356., 3638440., 3665524.,
      3692608., 2933217., 2956994., 2980771., 3004548., 3051798., 3075764.,
      3099730., 3123696., 3171891., 3196046., 3220201., 3244356., 3293496.,
      3317840., 3342184., 3366528., 2701784., 2722800., 2743816., 2764832.,
      2806848., 2828032., 2849216., 2870400., 2913256., 2934608., 2955960.,
      2977312., 3021008., 3042528., 3064048., 3085568., 2379339., 2397766.,
      2416193., 2434620., 2471142., 2489716., 2508290., 2526864., 2564121.,
      2582842., 2601563., 2620284., 2658276., 2677144., 2696012., 2714880.,
      2549800., 2570960., 2592120., 2613280., 2655632., 2676960., 2698288.,
      2719616., 2762808., 2784304., 2805800., 2827296., 2871328., 2892992.,
      2914656., 2936320., 2824256., 2848384., 2872512., 2896640., 2944768.,
      2969088., 2993408., 3017728., 3066816., 3091328., 3115840., 3140352.,
      3190400., 3215104., 3239808., 3264512., 3138872., 3165808., 3192744.,
      3219680., 3273808., 3300960., 3328112., 3355264., 3410472., 3437840.,
      3465208., 3492576., 3548864., 3576448., 3604032., 3631616., 3433232.,
      3463072., 3492912., 3522752., 3582592., 3612672., 3642752., 3672832.,
      3733872., 3764192., 3794512., 3824832., 3887072., 3917632., 3948192.,
      3978752., 3055384., 3082160., 3108936., 3135712., 3189296., 3216288.,
      3243280., 3270272., 3324936., 3352144., 3379352., 3406560., 3462304.,
      3489728., 3517152., 3544576., 2729536., 2753152., 2776768., 2800384.,
      2848000., 2871808., 2895616., 2919424., 2968000., 2992000., 3016000.,
      3040000., 3089536., 3113728., 3137920., 3162112., 2378888., 2399504.,
      2420120., 2440736., 2482160., 2502944., 2523728., 2544512., 2586776.,
      2607728., 2628680., 2649632., 2692736., 2713856., 2734976., 2756096.,
      2818305., 2841474., 2864643., 2887812., 2934838., 2958196., 2981554.,
      3004912., 3052883., 3076430., 3099977., 3123524., 3172440., 3196176.,
      3219912., 3243648., 3259304., 3285776., 3312248., 3338720., 3392192.,
      3418880., 3445568., 3472256., 3526808., 3553712., 3580616., 3607520.,
      3663152., 3690272., 3717392., 3744512., 3809419., 3839046., 3868673.,
      3898300., 3958406., 3988276., 4018146., 4048016., 4109337., 4139450.,
      4169563., 4199676., 4262212., 4292568., 4322924., 4353280., 4336362.,
      4369252., 4402142., 4435032., 4501448., 4534608., 4567768., 4600928.,
      4668694., 4702124., 4735554., 4768984., 4838100., 4871800., 4905500.,
      4939200., 3751463., 3781038., 3810613., 3840188., 3899682., 3929500.,
      3959318., 3989136., 4049845., 4079906., 4109967., 4140028., 4201952.,
      4232256., 4262560., 4292864., 3222888., 3249040., 3275192., 3301344.,
      3354240., 3380608., 3406976., 3433344., 3487320., 3513904., 3540488.,
      3567072., 3622128., 3648928., 3675728., 3702528., 2733421., 2756298.,
      2779175., 2802052., 2848162., 2871228., 2894294., 2917360., 2964415.,
      2987670., 3010925., 3034180., 3082180., 3105624., 3129068., 3152512.,
      2481768., 2502480., 2523192., 2543904., 2585808., 2606688., 2627568.,
      2648448., 2691192., 2712240., 2733288., 2754336., 2797920., 2819136.,
      2840352., 2861568., 2762304., 2785920., 2809536., 2833152., 2880768.,
      2904576., 2928384., 2952192., 3000768., 3024768., 3048768., 3072768.,
      3122304., 3146496., 3170688., 3194880., 3096312., 3122672., 3149032.,
      3175392., 3228944., 3255520., 3282096., 3308672., 3363304., 3390096.,
      3416888., 3443680., 3499392., 3526400., 3553408., 3580416., 3411088.,
      3440288., 3469488., 3498688., 3557888., 3587328., 3616768., 3646208.,
      3706608., 3736288., 3765968., 3795648., 3857248., 3887168., 3917088.,
      3947008., 3054808., 3081008., 3107208., 3133408., 3186416., 3212832.,
      3239248., 3265664., 3319752., 3346384., 3373016., 3399648., 3454816.,
      3481664., 3508512., 3535360., 2749504., 2772608., 2795712., 2818816.,
      2865920., 2889216., 2912512., 2935808., 2983872., 3007360., 3030848.,
      3054336., 3103360., 3127040., 3150720., 3174400., 2406088., 2426256.,
      2446424., 2466592., 2507568., 2527904., 2548240., 2568576., 2610392.,
      2630896., 2651400., 2671904., 2714560., 2735232., 2755904., 2776576.,
      2391079., 2409774., 2428469., 2447164., 2484162., 2503004., 2521846.,
      2540688., 2578421., 2597410., 2616399., 2635388., 2673856., 2692992.,
      2712128., 2731264., 2671128., 2692464., 2713800., 2735136., 2777216.,
      2798720., 2820224., 2841728., 2884648., 2906320., 2927992., 2949664.,
      2993424., 3015264., 3037104., 3058944., 2946701., 2970506., 2994311.,
      3018116., 3065538., 3089532., 3113526., 3137520., 3185887., 3210070.,
      3234253., 3258436., 3307748., 3332120., 3356492., 3380864., 3204678.,
      3231036., 3257394., 3283752., 3336264., 3362832., 3389400., 3415968.,
      3469530., 3496308., 3523086., 3549864., 3604476., 3631464., 3658452.,
      3685440., 2852017., 2875810., 2899603., 2923396., 2970598., 2994580.,
      3018562., 3042544., 3090691., 3114862., 3139033., 3163204., 3212296.,
      3236656., 3261016., 3285376., 2543192., 2564336., 2585480., 2606624.,
      2648768., 2670080., 2691392., 2712704., 2755688., 2777168., 2798648.,
      2820128., 2863952., 2885600., 2907248., 2928896., 2211195., 2229606.,
      2248017., 2266428., 2302998., 2321556., 2340114., 2358672., 2395977.,
      2414682., 2433387., 2452092., 2490132., 2508984., 2527836., 2546688.,
      1821246., 1837596., 1853946., 1870296., 1902348., 1918824., 1935300.,
      1951776., 1984458., 2001060., 2017662., 2034264., 2067576., 2084304.,
      2101032., 2117760., 2115888., 2134496., 2153104., 2171712., 2208064.,
      2226816., 2245568., 2264320., 2301392., 2320288., 2339184., 2358080.,
      2395872., 2414912., 2433952., 2452992., 2480970., 2501652., 2522334.,
      2543016., 2583964., 2604808., 2625652., 2646496., 2688254., 2709260.,
      2730266., 2751272., 2793840., 2815008., 2836176., 2857344., 2831884.,
      2854712., 2877540., 2900368., 2945696., 2968704., 2991712., 3014720.,
      3060948., 3084136., 3107324., 3130512., 3177640., 3201008., 3224376.,
      3247744., 2629554., 2650116., 2670678., 2691240., 2732036., 2752760.,
      2773484., 2794208., 2835814., 2856700., 2877586., 2898472., 2940888.,
      2961936., 2982984., 3004032., 2466224., 2484448., 2502672., 2520896.,
      2557376., 2575744., 2594112., 2612480., 2649680., 2668192., 2686704.,
      2705216., 2743136., 2761792., 2780448., 2799104., 2047366., 2063180.,
      2078994., 2094808., 2126420., 2142360., 2158300., 2174240., 2206482.,
      2222548., 2238614., 2254680., 2287552., 2303744., 2319936., 2336128.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x9x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5840412., 5855064., 5869716., 5884368., 5909280., 5923968., 5938656.,
      5953344., 5978436., 5993160., 6007884., 6022608., 6047880., 6062640.,
      6077400., 6092160., 5880876., 5895672., 5910468., 5925264., 5950320.,
      5965152., 5979984., 5994816., 6020052., 6034920., 6049788., 6064656.,
      6090072., 6104976., 6119880., 6134784., 5921340., 5936280., 5951220.,
      5966160., 5991360., 6006336., 6021312., 6036288., 6061668., 6076680.,
      6091692., 6106704., 6132264., 6147312., 6162360., 6177408., 5961804.,
      5976888., 5991972., 6007056., 6032400., 6047520., 6062640., 6077760.,
      6103284., 6118440., 6133596., 6148752., 6174456., 6189648., 6204840.,
      6220032., 6002268., 6017496., 6032724., 6047952., 6073440., 6088704.,
      6103968., 6119232., 6144900., 6160200., 6175500., 6190800., 6216648.,
      6231984., 6247320., 6262656., 6042732., 6058104., 6073476., 6088848.,
      6114480., 6129888., 6145296., 6160704., 6186516., 6201960., 6217404.,
      6232848., 6258840., 6274320., 6289800., 6305280., 6083196., 6098712.,
      6114228., 6129744., 6155520., 6171072., 6186624., 6202176., 6228132.,
      6243720., 6259308., 6274896., 6301032., 6316656., 6332280., 6347904.,
      6245052., 6261144., 6277236., 6293328., 6319680., 6335808., 6351936.,
      6368064., 6394596., 6410760., 6426924., 6443088., 6469800., 6486000.,
      6502200., 6518400., 6285516., 6301752., 6317988., 6334224., 6360720.,
      6376992., 6393264., 6409536., 6436212., 6452520., 6468828., 6485136.,
      6511992., 6528336., 6544680., 6561024., 6325980., 6342360., 6358740.,
      6375120., 6401760., 6418176., 6434592., 6451008., 6477828., 6494280.,
      6510732., 6527184., 6554184., 6570672., 6587160., 6603648., 6366444.,
      6382968., 6399492., 6416016., 6442800., 6459360., 6475920., 6492480.,
      6519444., 6536040., 6552636., 6569232., 6596376., 6613008., 6629640.,
      6646272., 6406908., 6423576., 6440244., 6456912., 6483840., 6500544.,
      6517248., 6533952., 6561060., 6577800., 6594540., 6611280., 6638568.,
      6655344., 6672120., 6688896., 6447372., 6464184., 6480996., 6497808.,
      6524880., 6541728., 6558576., 6575424., 6602676., 6619560., 6636444.,
      6653328., 6680760., 6697680., 6714600., 6731520., 6487836., 6504792.,
      6521748., 6538704., 6565920., 6582912., 6599904., 6616896., 6644292.,
      6661320., 6678348., 6695376., 6722952., 6740016., 6757080., 6774144.,
      6649692., 6667224., 6684756., 6702288., 6730080., 6747648., 6765216.,
      6782784., 6810756., 6828360., 6845964., 6863568., 6891720., 6909360.,
      6927000., 6944640., 6690156., 6707832., 6725508., 6743184., 6771120.,
      6788832., 6806544., 6824256., 6852372., 6870120., 6887868., 6905616.,
      6933912., 6951696., 6969480., 6987264., 6730620., 6748440., 6766260.,
      6784080., 6812160., 6830016., 6847872., 6865728., 6893988., 6911880.,
      6929772., 6947664., 6976104., 6994032., 7011960., 7029888., 6771084.,
      6789048., 6807012., 6824976., 6853200., 6871200., 6889200., 6907200.,
      6935604., 6953640., 6971676., 6989712., 7018296., 7036368., 7054440.,
      7072512., 6811548., 6829656., 6847764., 6865872., 6894240., 6912384.,
      6930528., 6948672., 6977220., 6995400., 7013580., 7031760., 7060488.,
      7078704., 7096920., 7115136., 6852012., 6870264., 6888516., 6906768.,
      6935280., 6953568., 6971856., 6990144., 7018836., 7037160., 7055484.,
      7073808., 7102680., 7121040., 7139400., 7157760., 6892476., 6910872.,
      6929268., 6947664., 6976320., 6994752., 7013184., 7031616., 7060452.,
      7078920., 7097388., 7115856., 7144872., 7163376., 7181880., 7200384.,
      7054332., 7073304., 7092276., 7111248., 7140480., 7159488., 7178496.,
      7197504., 7226916., 7245960., 7265004., 7284048., 7313640., 7332720.,
      7351800., 7370880., 7094796., 7113912., 7133028., 7152144., 7181520.,
      7200672., 7219824., 7238976., 7268532., 7287720., 7306908., 7326096.,
      7355832., 7375056., 7394280., 7413504., 7135260., 7154520., 7173780.,
      7193040., 7222560., 7241856., 7261152., 7280448., 7310148., 7329480.,
      7348812., 7368144., 7398024., 7417392., 7436760., 7456128., 7175724.,
      7195128., 7214532., 7233936., 7263600., 7283040., 7302480., 7321920.,
      7351764., 7371240., 7390716., 7410192., 7440216., 7459728., 7479240.,
      7498752., 7216188., 7235736., 7255284., 7274832., 7304640., 7324224.,
      7343808., 7363392., 7393380., 7413000., 7432620., 7452240., 7482408.,
      7502064., 7521720., 7541376., 7256652., 7276344., 7296036., 7315728.,
      7345680., 7365408., 7385136., 7404864., 7434996., 7454760., 7474524.,
      7494288., 7524600., 7544400., 7564200., 7584000., 7297116., 7316952.,
      7336788., 7356624., 7386720., 7406592., 7426464., 7446336., 7476612.,
      7496520., 7516428., 7536336., 7566792., 7586736., 7606680., 7626624.,
      7458972., 7479384., 7499796., 7520208., 7550880., 7571328., 7591776.,
      7612224., 7643076., 7663560., 7684044., 7704528., 7735560., 7756080.,
      7776600., 7797120., 7499436., 7519992., 7540548., 7561104., 7591920.,
      7612512., 7633104., 7653696., 7684692., 7705320., 7725948., 7746576.,
      7777752., 7798416., 7819080., 7839744., 7539900., 7560600., 7581300.,
      7602000., 7632960., 7653696., 7674432., 7695168., 7726308., 7747080.,
      7767852., 7788624., 7819944., 7840752., 7861560., 7882368., 7580364.,
      7601208., 7622052., 7642896., 7674000., 7694880., 7715760., 7736640.,
      7767924., 7788840., 7809756., 7830672., 7862136., 7883088., 7904040.,
      7924992., 7620828., 7641816., 7662804., 7683792., 7715040., 7736064.,
      7757088., 7778112., 7809540., 7830600., 7851660., 7872720., 7904328.,
      7925424., 7946520., 7967616., 7661292., 7682424., 7703556., 7724688.,
      7756080., 7777248., 7798416., 7819584., 7851156., 7872360., 7893564.,
      7914768., 7946520., 7967760., 7989000., 8010240., 7701756., 7723032.,
      7744308., 7765584., 7797120., 7818432., 7839744., 7861056., 7892772.,
      7914120., 7935468., 7956816., 7988712., 8010096., 8031480., 8052864.,
      7863612., 7885464., 7907316., 7929168., 7961280., 7983168., 8005056.,
      8026944., 8059236., 8081160., 8103084., 8125008., 8157480., 8179440.,
      8201400., 8223360., 7904076., 7926072., 7948068., 7970064., 8002320.,
      8024352., 8046384., 8068416., 8100852., 8122920., 8144988., 8167056.,
      8199672., 8221776., 8243880., 8265984., 7944540., 7966680., 7988820.,
      8010960., 8043360., 8065536., 8087712., 8109888., 8142468., 8164680.,
      8186892., 8209104., 8241864., 8264112., 8286360., 8308608., 7985004.,
      8007288., 8029572., 8051856., 8084400., 8106720., 8129040., 8151360.,
      8184084., 8206440., 8228796., 8251152., 8284056., 8306448., 8328840.,
      8351232., 8025468., 8047896., 8070324., 8092752., 8125440., 8147904.,
      8170368., 8192832., 8225700., 8248200., 8270700., 8293200., 8326248.,
      8348784., 8371320., 8393856., 8065932., 8088504., 8111076., 8133648.,
      8166480., 8189088., 8211696., 8234304., 8267316., 8289960., 8312604.,
      8335248., 8368440., 8391120., 8413800., 8436480., 8106396., 8129112.,
      8151828., 8174544., 8207520., 8230272., 8253024., 8275776., 8308932.,
      8331720., 8354508., 8377296., 8410632., 8433456., 8456280., 8479104.,
      8268252., 8291544., 8314836., 8338128., 8371680., 8395008., 8418336.,
      8441664., 8475396., 8498760., 8522124., 8545488., 8579400., 8602800.,
      8626200., 8649600., 8308716., 8332152., 8355588., 8379024., 8412720.,
      8436192., 8459664., 8483136., 8517012., 8540520., 8564028., 8587536.,
      8621592., 8645136., 8668680., 8692224., 8349180., 8372760., 8396340.,
      8419920., 8453760., 8477376., 8500992., 8524608., 8558628., 8582280.,
      8605932., 8629584., 8663784., 8687472., 8711160., 8734848., 8389644.,
      8413368., 8437092., 8460816., 8494800., 8518560., 8542320., 8566080.,
      8600244., 8624040., 8647836., 8671632., 8705976., 8729808., 8753640.,
      8777472., 8430108., 8453976., 8477844., 8501712., 8535840., 8559744.,
      8583648., 8607552., 8641860., 8665800., 8689740., 8713680., 8748168.,
      8772144., 8796120., 8820096., 8470572., 8494584., 8518596., 8542608.,
      8576880., 8600928., 8624976., 8649024., 8683476., 8707560., 8731644.,
      8755728., 8790360., 8814480., 8838600., 8862720., 8511036., 8535192.,
      8559348., 8583504., 8617920., 8642112., 8666304., 8690496., 8725092.,
      8749320., 8773548., 8797776., 8832552., 8856816., 8881080., 8905344.};
  const std::array<int, 4> in_shape = {{3, 9, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1980580., 2378481., 2776928., 3175900., 2780456., 2384529., 1988140.,
      2284160., 2742456., 3201184., 3660320., 3203872., 2747064., 2289920.,
      2590020., 3109023., 3628296., 4147812., 3629808., 3111615., 2593260.,
      2897200., 3477030., 4056920., 4636840., 4056920., 3477030., 2897200.,
      2593260., 3111615., 3629808., 4147812., 3628296., 3109023., 2590020.,
      2289920., 2747064., 3203872., 3660320., 3201184., 2742456., 2284160.,
      1988140., 2384529., 2780456., 3175900., 2776928., 2378481., 1980580.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      38776., 39076., 39376., 39676., 39976., 40276., 40576., 41176., 41476.,
      41776., 42076., 42376., 42676., 42976., 43576., 43876., 44176., 44476.,
      44776., 45076., 45376., 45976., 46276., 46576., 46876., 47176., 47476.,
      47776., 48376., 48676., 48976., 49276., 49576., 49876., 50176., 50776.,
      51076., 51376., 51676., 51976., 52276., 52576., 53176., 53476., 53776.,
      54076., 54376., 54676., 54976.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3949925., 3961160., 4743417., 4756962., 5537980., 5553856., 6333572.,
      6351800., 5544889., 5560912., 4755261., 4769058., 3964730., 3976280.,
      4555000., 4568320., 5468856., 5484912., 6383552., 6402368., 7299040.,
      7320640., 6388760., 6407744., 5477784., 5494128., 4566160., 4579840.,
      5164515., 5180040., 6199335., 6218046., 7234668., 7256592., 8270460.,
      8295624., 7237503., 7259616., 6204195., 6223230., 5170590., 5186520.,
      5776550., 5794400., 6932550., 6954060., 8088640., 8113840., 9244760.,
      9273680., 8088430., 8113840., 6932190., 6954060., 5776100., 5794400.,
      5169915., 5186520., 6203223., 6223230., 7236180., 7259616., 8268732.,
      8295624., 7232967., 7256592., 6197715., 6218046., 5163030., 5180040.,
      4564600., 4579840., 5475768., 5494128., 6386240., 6407744., 7295968.,
      7320640., 6380696., 6402368., 5466264., 5484912., 4552720., 4568320.,
      3962525., 3976280., 4752489., 4769058., 5541508., 5560912., 6329540.,
      6351800., 5534305., 5553856., 4740141., 4756962., 3947090., 3961160.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      75308.,  77552.,  75884.,  78152.,  76460.,  78752.,  77036.,  79352.,
      77612.,  79952.,  78188.,  80552.,  78764.,  81152.,  79916.,  82352.,
      80492.,  82952.,  81068.,  83552.,  81644.,  84152.,  82220.,  84752.,
      82796.,  85352.,  83372.,  85952.,  84524.,  87152.,  85100.,  87752.,
      85676.,  88352.,  86252.,  88952.,  86828.,  89552.,  87404.,  90152.,
      87980.,  90752.,  89132.,  91952.,  89708.,  92552.,  90284.,  93152.,
      90860.,  93752.,  91436.,  94352.,  92012.,  94952.,  92588.,  95552.,
      93740.,  96752.,  94316.,  97352.,  94892.,  97952.,  95468.,  98552.,
      96044.,  99152.,  96620.,  99752.,  97196.,  100352., 98348.,  101552.,
      98924.,  102152., 99500.,  102752., 100076., 103352., 100652., 103952.,
      101228., 104552., 101804., 105152., 102956., 106352., 103532., 106952.,
      104108., 107552., 104684., 108152., 105260., 108752., 105836., 109352.,
      106412., 109952.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3319015., 3330250., 3341485., 3352720., 3972873., 3986418., 3999963.,
      4013508., 4623220., 4639096., 4654972., 4670848., 5269972., 5288200.,
      5306428., 5324656., 4597467., 4613490., 4629513., 4645536., 3928725.,
      3942522., 3956319., 3970116., 3263830., 3275380., 3286930., 3298480.,
      3884520., 3897840., 3911160., 3924480., 4648632., 4664688., 4680744.,
      4696800., 5408256., 5427072., 5445888., 5464704., 6163296., 6184896.,
      6206496., 6228096., 5375496., 5394480., 5413464., 5432448., 4592472.,
      4608816., 4625160., 4641504., 3814320., 3828000., 3841680., 3855360.,
      4438305., 4453830., 4469355., 4484880., 5309751., 5328462., 5347173.,
      5365884., 6175540., 6197464., 6219388., 6241312., 7035564., 7060728.,
      7085892., 7111056., 6134429., 6156542., 6178655., 6200768., 5239275.,
      5258310., 5277345., 5296380., 4350210., 4366140., 4382070., 4398000.,
      4976530., 4994380., 5012230., 5030080., 5951622., 5973132., 5994642.,
      6016152., 6919696., 6944896., 6970096., 6995296., 7880632., 7909552.,
      7938472., 7967392., 6868890., 6894300., 6919710., 6945120., 5864526.,
      5886396., 5908266., 5930136., 4867660., 4885960., 4904260., 4922560.,
      4517145., 4533750., 4550355., 4566960., 5400711., 5420718., 5440725.,
      5460732., 6277404., 6300840., 6324276., 6347712., 7147116., 7174008.,
      7200900., 7227792., 6227781., 6251406., 6275031., 6298656., 5315643.,
      5335974., 5356305., 5376636., 4410810., 4427820., 4444830., 4461840.,
      4101480., 4116720., 4131960., 4147200., 4902840., 4921200., 4939560.,
      4957920., 5697664., 5719168., 5740672., 5762176., 6485856., 6510528.,
      6535200., 6559872., 5650568., 5672240., 5693912., 5715584., 4822104.,
      4840752., 4859400., 4878048., 4000560., 4016160., 4031760., 4047360.,
      3733375., 3747130., 3760885., 3774640., 4462617., 4479186., 4495755.,
      4512324., 5185852., 5205256., 5224660., 5244064., 5902996., 5925256.,
      5947516., 5969776., 5142627., 5162178., 5181729., 5201280., 4388517.,
      4405338., 4422159., 4438980., 3640750., 3654820., 3668890., 3682960.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      148372., 150616., 152860., 155104., 149500., 151768., 154036., 156304.,
      150628., 152920., 155212., 157504., 151756., 154072., 156388., 158704.,
      152884., 155224., 157564., 159904., 154012., 156376., 158740., 161104.,
      155140., 157528., 159916., 162304., 157396., 159832., 162268., 164704.,
      158524., 160984., 163444., 165904., 159652., 162136., 164620., 167104.,
      160780., 163288., 165796., 168304., 161908., 164440., 166972., 169504.,
      163036., 165592., 168148., 170704., 164164., 166744., 169324., 171904.,
      166420., 169048., 171676., 174304., 167548., 170200., 172852., 175504.,
      168676., 171352., 174028., 176704., 169804., 172504., 175204., 177904.,
      170932., 173656., 176380., 179104., 172060., 174808., 177556., 180304.,
      173188., 175960., 178732., 181504., 175444., 178264., 181084., 183904.,
      176572., 179416., 182260., 185104., 177700., 180568., 183436., 186304.,
      178828., 181720., 184612., 187504., 179956., 182872., 185788., 188704.,
      181084., 184024., 186964., 189904., 182212., 185176., 188140., 191104.,
      184468., 187480., 190492., 193504., 185596., 188632., 191668., 194704.,
      186724., 189784., 192844., 195904., 187852., 190936., 194020., 197104.,
      188980., 192088., 195196., 198304., 190108., 193240., 196372., 199504.,
      191236., 194392., 197548., 200704., 193492., 196696., 199900., 203104.,
      194620., 197848., 201076., 204304., 195748., 199000., 202252., 205504.,
      196876., 200152., 203428., 206704., 198004., 201304., 204604., 207904.,
      199132., 202456., 205780., 209104., 200260., 203608., 206956., 210304.,
      202516., 205912., 209308., 212704., 203644., 207064., 210484., 213904.,
      204772., 208216., 211660., 215104., 205900., 209368., 212836., 216304.,
      207028., 210520., 214012., 217504., 208156., 211672., 215188., 218704.,
      209284., 212824., 216364., 219904.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1708615., 1734800., 2052870., 2084292., 2397773., 2434432., 2743240.,
      2785136., 2401133., 2437792., 2058630., 2090052., 1715815., 1742000.,
      2082440., 2112000., 2501712., 2537184., 2921688., 2963072., 3342272.,
      3389568., 2925272., 2966656., 2507856., 2543328., 2090120., 2119680.,
      2485865., 2518800., 2985498., 3025020., 3485699., 3531808., 3986360.,
      4039056., 3488163., 3534272., 2989722., 3029244., 2491145., 2524080.,
      2915050., 2951360., 3499620., 3543192., 4084430., 4135264., 4669360.,
      4727456., 4084430., 4135264., 3499620., 3543192., 2915050., 2951360.,
      2491145., 2524080., 2989722., 3029244., 3488163., 3534272., 3986360.,
      4039056., 3485699., 3531808., 2985498., 3025020., 2485865., 2518800.,
      2090120., 2119680., 2507856., 2543328., 2925272., 2966656., 3342272.,
      3389568., 2921688., 2963072., 2501712., 2537184., 2082440., 2112000.,
      1715815., 1742000., 2058630., 2090052., 2401133., 2437792., 2743240.,
      2785136., 2397773., 2434432., 2052870., 2084292., 1708615., 1734800.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      150040., 155104., 151192., 156304., 152344., 157504., 153496., 158704.,
      154648., 159904., 155800., 161104., 156952., 162304., 159256., 164704.,
      160408., 165904., 161560., 167104., 162712., 168304., 163864., 169504.,
      165016., 170704., 166168., 171904., 168472., 174304., 169624., 175504.,
      170776., 176704., 171928., 177904., 173080., 179104., 174232., 180304.,
      175384., 181504., 177688., 183904., 178840., 185104., 179992., 186304.,
      181144., 187504., 182296., 188704., 183448., 189904., 184600., 191104.,
      186904., 193504., 188056., 194704., 189208., 195904., 190360., 197104.,
      191512., 198304., 192664., 199504., 193816., 200704., 196120., 203104.,
      197272., 204304., 198424., 205504., 199576., 206704., 200728., 207904.,
      201880., 209104., 203032., 210304., 205336., 212704., 206488., 213904.,
      207640., 215104., 208792., 216304., 209944., 217504., 211096., 218704.,
      212248., 219904.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6610225.,  6632590.,  6682970.,  6705440.,  7912632.,  7939596.,
      7999926.,  8027016.,  9208101.,  9239706.,  9309944.,  9341696.,
      10496464., 10532752., 10612856., 10649312., 9157183.,  9189082.,
      9259026.,  9291072.,  7825344.,  7852812.,  7912638.,  7940232.,
      6501115.,  6524110.,  6573860.,  6596960.,  7737720.,  7764240.,
      7822320.,  7848960.,  9259968.,  9291936.,  9361488.,  9393600.,
      10773336., 10810800., 10891776., 10929408., 12277632., 12320640.,
      12412992., 12456192., 10708488., 10746288., 10826928., 10864896.,
      9148800.,  9181344.,  9250320.,  9283008.,  7598760.,  7626000.,
      7683360.,  7710720.,  8842255.,  8873170.,  8938710.,  8969760.,
      10578600., 10615860., 10694346., 10731768., 12303739., 12347398.,
      12438776., 12482624., 14017456., 14067568., 14171784., 14222112.,
      12222273., 12266310., 12357310., 12401536., 10438944., 10476852.,
      10554690., 10592760., 8667685.,  8699410.,  8764140.,  8796000.,
      9916150.,  9951700.,  10024460., 10060160., 11859312., 11902152.,
      11989284., 12032304., 13788558., 13838748., 13940192., 13990592.,
      15703648., 15761248., 15876944., 15934784., 13687786., 13738396.,
      13839420., 13890240., 11686560., 11730120., 11816532., 11860272.,
      9700210.,  9736660.,  9808520.,  9845120.,  9001695.,  9034770.,
      9100710.,  9133920.,  10762632., 10802484., 10881450., 10921464.,
      12509931., 12556614., 12648552., 12695424., 14243376., 14296944.,
      14401800., 14455584., 12411441., 12458502., 12550062., 12597312.,
      10593792., 10634292., 10712610., 10753272., 8790645.,  8824530.,
      8889660.,  8923680.,  8174200.,  8204560.,  8263920.,  8294400.,
      9771456.,  9808032.,  9879120.,  9915840.,  11355736., 11398576.,
      11481344., 11524352., 12926848., 12976000., 13070400., 13119744.,
      11262216., 11305392., 11387824., 11431168., 9611136.,  9648288.,
      9718800.,  9756096.,  7973800.,  8004880.,  8063520.,  8094720.,
      7441345.,  7468750.,  7521770.,  7549280.,  8895000.,  8928012.,
      8991510.,  9024648.,  10336725., 10375386., 10449320., 10488128.,
      11766352., 11810704., 11895032., 11939552., 10250863., 10289818.,
      10363458., 10402560., 8747808.,  8781324.,  8844318.,  8877960.,
      7257355.,  7285390.,  7337780.,  7365920.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      295616., 300080., 305720., 310208., 297872., 302384., 308072., 312608.,
      300128., 304688., 310424., 315008., 302384., 306992., 312776., 317408.,
      304640., 309296., 315128., 319808., 306896., 311600., 317480., 322208.,
      309152., 313904., 319832., 324608., 313664., 318512., 324536., 329408.,
      315920., 320816., 326888., 331808., 318176., 323120., 329240., 334208.,
      320432., 325424., 331592., 336608., 322688., 327728., 333944., 339008.,
      324944., 330032., 336296., 341408., 327200., 332336., 338648., 343808.,
      331712., 336944., 343352., 348608., 333968., 339248., 345704., 351008.,
      336224., 341552., 348056., 353408., 338480., 343856., 350408., 355808.,
      340736., 346160., 352760., 358208., 342992., 348464., 355112., 360608.,
      345248., 350768., 357464., 363008., 349760., 355376., 362168., 367808.,
      352016., 357680., 364520., 370208., 354272., 359984., 366872., 372608.,
      356528., 362288., 369224., 375008., 358784., 364592., 371576., 377408.,
      361040., 366896., 373928., 379808., 363296., 369200., 376280., 382208.,
      367808., 373808., 380984., 387008., 370064., 376112., 383336., 389408.,
      372320., 378416., 385688., 391808., 374576., 380720., 388040., 394208.,
      376832., 383024., 390392., 396608., 379088., 385328., 392744., 399008.,
      381344., 387632., 395096., 401408., 385856., 392240., 399800., 406208.,
      388112., 394544., 402152., 408608., 390368., 396848., 404504., 411008.,
      392624., 399152., 406856., 413408., 394880., 401456., 409208., 415808.,
      397136., 403760., 411560., 418208., 399392., 406064., 413912., 420608.,
      403904., 410672., 418616., 425408., 406160., 412976., 420968., 427808.,
      408416., 415280., 423320., 430208., 410672., 417584., 425672., 432608.,
      412928., 419888., 428024., 435008., 415184., 422192., 430376., 437408.,
      417440., 424496., 432728., 439808.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5479685.,  5502050.,  5524415.,  5546780.,  5596910.,  5619380.,
      5641850.,  5664320.,  6502428.,  6529392.,  6556356.,  6583320.,
      6643098.,  6670188.,  6697278.,  6724368.,  7499989.,  7531594.,
      7563199.,  7594804.,  7664104.,  7695856.,  7727608.,  7759360.,
      8472032.,  8508320.,  8544608.,  8580896.,  8659592.,  8696048.,
      8732504.,  8768960.,  7319011.,  7350910.,  7382809.,  7414708.,
      7483126.,  7515172.,  7547218.,  7579264.,  6192180.,  6219648.,
      6247116.,  6274584.,  6332850.,  6360444.,  6388038.,  6415632.,
      5091875.,  5114870.,  5137865.,  5160860.,  5209100.,  5232200.,
      5255300.,  5278400.,  6857560.,  6884080.,  6910600.,  6937120.,
      6995920.,  7022560.,  7049200.,  7075840.,  8141472.,  8173440.,
      8205408.,  8237376.,  8307504.,  8339616.,  8371728.,  8403840.,
      9395288.,  9432752.,  9470216.,  9507680.,  9588992.,  9626624.,
      9664256.,  9701888.,  10618624., 10661632., 10704640., 10747648.,
      10840000., 10883200., 10926400., 10969600., 9179240.,  9217040.,
      9254840.,  9292640.,  9372944.,  9410912.,  9448880.,  9486848.,
      7771104.,  7803648.,  7836192.,  7868736.,  7937136.,  7969824.,
      8002512.,  8035200.,  6394600.,  6421840.,  6449080.,  6476320.,
      6532960.,  6560320.,  6587680.,  6615040.,  8148315.,  8179230.,
      8210145.,  8241060.,  8307810.,  8338860.,  8369910.,  8400960.,
      9673668.,  9710928.,  9748188.,  9785448.,  9865062.,  9902484.,
      9939906.,  9977328.,  11163243., 11206902., 11250561., 11294220.,
      11386536., 11430384., 11474232., 11518080., 12616608., 12666720.,
      12716832., 12766944., 12871800., 12922128., 12972456., 13022784.,
      10906749., 10950786., 10994823., 11038860., 11130042., 11174268.,
      11218494., 11262720., 9233964.,  9271872.,  9309780.,  9347688.,
      9425358.,  9463428.,  9501498.,  9539568.,  7598685.,  7630410.,
      7662135.,  7693860.,  7758180.,  7790040.,  7821900.,  7853760.,
      9336590.,  9372140.,  9407690.,  9443240.,  9517220.,  9552920.,
      9588620.,  9624320.,  11080584., 11123424., 11166264., 11209104.,
      11297340., 11340360., 11383380., 11426400., 12782350., 12832540.,
      12882730., 12932920., 13035232., 13085632., 13136032., 13186432.,
      14441408., 14499008., 14556608., 14614208., 14730416., 14788256.,
      14846096., 14903936., 12480034., 12530644., 12581254., 12631864.,
      12732916., 12783736., 12834556., 12885376., 10562328., 10605888.,
      10649448., 10693008., 10779084., 10822824., 10866564., 10910304.,
      8688770.,  8725220.,  8761670.,  8798120.,  8869400.,  8906000.,
      8942600.,  8979200.,  8600715.,  8633790.,  8666865.,  8699940.,
      8767890.,  8801100.,  8834310.,  8867520.,  10205028., 10244880.,
      10284732., 10324584., 10405638., 10445652., 10485666., 10525680.,
      11769723., 11816406., 11863089., 11909772., 12003768., 12050640.,
      12097512., 12144384., 13294368., 13347936., 13401504., 13455072.,
      13561848., 13615632., 13669416., 13723200., 11486349., 11533410.,
      11580471., 11627532., 11720394., 11767644., 11814894., 11862144.,
      9719244.,  9759744.,  9800244.,  9840744.,  9919854.,  9960516.,
      10001178., 10041840., 7993485.,  8027370.,  8061255.,  8095140.,
      8160660.,  8194680.,  8228700.,  8262720.,  8120920.,  8151280.,
      8181640.,  8212000.,  8274640.,  8305120.,  8335600.,  8366080.,
      9639072.,  9675648.,  9712224.,  9748800.,  9823536.,  9860256.,
      9896976.,  9933696.,  11120984., 11163824., 11206664., 11249504.,
      11336192., 11379200., 11422208., 11465216., 12566272., 12615424.,
      12664576., 12713728., 12812224., 12861568., 12910912., 12960256.,
      10861928., 10905104., 10948280., 10991456., 11077136., 11120480.,
      11163824., 11207168., 9194976.,  9232128.,  9269280.,  9306432.,
      9379440.,  9416736.,  9454032.,  9491328.,  7565800.,  7596880.,
      7627960.,  7659040.,  7719520.,  7750720.,  7781920.,  7813120.,
      7490165.,  7517570.,  7544975.,  7572380.,  7627870.,  7655380.,
      7682890.,  7710400.,  8891196.,  8924208.,  8957220.,  8990232.,
      9056442.,  9089580.,  9122718.,  9155856.,  10259109., 10297770.,
      10336431., 10375092., 10451896., 10490704., 10529512., 10568320.,
      11593568., 11637920., 11682272., 11726624., 11813896., 11858416.,
      11902936., 11947456., 10022579., 10061534., 10100489., 10139444.,
      10215366., 10254468., 10293570., 10332672., 8485716.,  8519232.,
      8552748.,  8586264.,  8650962.,  8684604.,  8718246.,  8751888.,
      6983315.,  7011350.,  7039385.,  7067420.,  7121020.,  7149160.,
      7177300.,  7205440.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      586768., 591232., 595696., 600160., 606952., 611440., 615928., 620416.,
      591232., 595744., 600256., 604768., 611608., 616144., 620680., 625216.,
      595696., 600256., 604816., 609376., 616264., 620848., 625432., 630016.,
      600160., 604768., 609376., 613984., 620920., 625552., 630184., 634816.,
      604624., 609280., 613936., 618592., 625576., 630256., 634936., 639616.,
      609088., 613792., 618496., 623200., 630232., 634960., 639688., 644416.,
      613552., 618304., 623056., 627808., 634888., 639664., 644440., 649216.,
      622480., 627328., 632176., 637024., 644200., 649072., 653944., 658816.,
      626944., 631840., 636736., 641632., 648856., 653776., 658696., 663616.,
      631408., 636352., 641296., 646240., 653512., 658480., 663448., 668416.,
      635872., 640864., 645856., 650848., 658168., 663184., 668200., 673216.,
      640336., 645376., 650416., 655456., 662824., 667888., 672952., 678016.,
      644800., 649888., 654976., 660064., 667480., 672592., 677704., 682816.,
      649264., 654400., 659536., 664672., 672136., 677296., 682456., 687616.,
      658192., 663424., 668656., 673888., 681448., 686704., 691960., 697216.,
      662656., 667936., 673216., 678496., 686104., 691408., 696712., 702016.,
      667120., 672448., 677776., 683104., 690760., 696112., 701464., 706816.,
      671584., 676960., 682336., 687712., 695416., 700816., 706216., 711616.,
      676048., 681472., 686896., 692320., 700072., 705520., 710968., 716416.,
      680512., 685984., 691456., 696928., 704728., 710224., 715720., 721216.,
      684976., 690496., 696016., 701536., 709384., 714928., 720472., 726016.,
      693904., 699520., 705136., 710752., 718696., 724336., 729976., 735616.,
      698368., 704032., 709696., 715360., 723352., 729040., 734728., 740416.,
      702832., 708544., 714256., 719968., 728008., 733744., 739480., 745216.,
      707296., 713056., 718816., 724576., 732664., 738448., 744232., 750016.,
      711760., 717568., 723376., 729184., 737320., 743152., 748984., 754816.,
      716224., 722080., 727936., 733792., 741976., 747856., 753736., 759616.,
      720688., 726592., 732496., 738400., 746632., 752560., 758488., 764416.,
      729616., 735616., 741616., 747616., 755944., 761968., 767992., 774016.,
      734080., 740128., 746176., 752224., 760600., 766672., 772744., 778816.,
      738544., 744640., 750736., 756832., 765256., 771376., 777496., 783616.,
      743008., 749152., 755296., 761440., 769912., 776080., 782248., 788416.,
      747472., 753664., 759856., 766048., 774568., 780784., 787000., 793216.,
      751936., 758176., 764416., 770656., 779224., 785488., 791752., 798016.,
      756400., 762688., 768976., 775264., 783880., 790192., 796504., 802816.,
      765328., 771712., 778096., 784480., 793192., 799600., 806008., 812416.,
      769792., 776224., 782656., 789088., 797848., 804304., 810760., 817216.,
      774256., 780736., 787216., 793696., 802504., 809008., 815512., 822016.,
      778720., 785248., 791776., 798304., 807160., 813712., 820264., 826816.,
      783184., 789760., 796336., 802912., 811816., 818416., 825016., 831616.,
      787648., 794272., 800896., 807520., 816472., 823120., 829768., 836416.,
      792112., 798784., 805456., 812128., 821128., 827824., 834520., 841216.,
      801040., 807808., 814576., 821344., 830440., 837232., 844024., 850816.,
      805504., 812320., 819136., 825952., 835096., 841936., 848776., 855616.,
      809968., 816832., 823696., 830560., 839752., 846640., 853528., 860416.,
      814432., 821344., 828256., 835168., 844408., 851344., 858280., 865216.,
      818896., 825856., 832816., 839776., 849064., 856048., 863032., 870016.,
      823360., 830368., 837376., 844384., 853720., 860752., 867784., 874816.,
      827824., 834880., 841936., 848992., 858376., 865456., 872536., 879616.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1416645., 1443100., 1469765., 1496640., 1703958., 1735704., 1767702.,
      1799952., 1991815., 2028852., 2066183., 2103808., 2279880., 2322208.,
      2364872., 2407872., 1990919., 2027956., 2065287., 2102912., 1702422.,
      1734168., 1766166., 1798416., 1414725., 1441180., 1467845., 1494720.,
      1842840., 1873440., 1904280., 1935360., 2216400., 2253120., 2290128.,
      2327424., 2590728., 2633568., 2676744., 2720256., 2965440., 3014400.,
      3063744., 3113472., 2590728., 2633568., 2676744., 2720256., 2216400.,
      2253120., 2290128., 2327424., 1842840., 1873440., 1904280., 1935360.,
      2319595., 2353060., 2386795., 2420800., 2790282., 2830440., 2870922.,
      2911728., 3262217., 3309068., 3356297., 3403904., 3734968., 3788512.,
      3842488., 3896896., 3264905., 3311756., 3358985., 3406592., 2794890.,
      2835048., 2875530., 2916336., 2325355., 2358820., 2392555., 2426560.,
      2940350., 2976680., 3013310., 3050240., 3534660., 3578256., 3622212.,
      3666528., 4129930., 4180792., 4232074., 4283776., 4725680., 4783808.,
      4842416., 4901504., 4129930., 4180792., 4232074., 4283776., 3534660.,
      3578256., 3622212., 3666528., 2940350., 2976680., 3013310., 3050240.,
      2325355., 2358820., 2392555., 2426560., 2794890., 2835048., 2875530.,
      2916336., 3264905., 3311756., 3358985., 3406592., 3734968., 3788512.,
      3842488., 3896896., 3262217., 3309068., 3356297., 3403904., 2790282.,
      2830440., 2870922., 2911728., 2319595., 2353060., 2386795., 2420800.,
      1842840., 1873440., 1904280., 1935360., 2216400., 2253120., 2290128.,
      2327424., 2590728., 2633568., 2676744., 2720256., 2965440., 3014400.,
      3063744., 3113472., 2590728., 2633568., 2676744., 2720256., 2216400.,
      2253120., 2290128., 2327424., 1842840., 1873440., 1904280., 1935360.,
      1414725., 1441180., 1467845., 1494720., 1702422., 1734168., 1766166.,
      1798416., 1990919., 2027956., 2065287., 2102912., 2279880., 2322208.,
      2364872., 2407872., 1991815., 2028852., 2066183., 2103808., 1703958.,
      1735704., 1767702., 1799952., 1416645., 1443100., 1469765., 1496640.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      590104., 600160., 610264., 620416., 594616., 604768., 614968., 625216.,
      599128., 609376., 619672., 630016., 603640., 613984., 624376., 634816.,
      608152., 618592., 629080., 639616., 612664., 623200., 633784., 644416.,
      617176., 627808., 638488., 649216., 626200., 637024., 647896., 658816.,
      630712., 641632., 652600., 663616., 635224., 646240., 657304., 668416.,
      639736., 650848., 662008., 673216., 644248., 655456., 666712., 678016.,
      648760., 660064., 671416., 682816., 653272., 664672., 676120., 687616.,
      662296., 673888., 685528., 697216., 666808., 678496., 690232., 702016.,
      671320., 683104., 694936., 706816., 675832., 687712., 699640., 711616.,
      680344., 692320., 704344., 716416., 684856., 696928., 709048., 721216.,
      689368., 701536., 713752., 726016., 698392., 710752., 723160., 735616.,
      702904., 715360., 727864., 740416., 707416., 719968., 732568., 745216.,
      711928., 724576., 737272., 750016., 716440., 729184., 741976., 754816.,
      720952., 733792., 746680., 759616., 725464., 738400., 751384., 764416.,
      734488., 747616., 760792., 774016., 739000., 752224., 765496., 778816.,
      743512., 756832., 770200., 783616., 748024., 761440., 774904., 788416.,
      752536., 766048., 779608., 793216., 757048., 770656., 784312., 798016.,
      761560., 775264., 789016., 802816., 770584., 784480., 798424., 812416.,
      775096., 789088., 803128., 817216., 779608., 793696., 807832., 822016.,
      784120., 798304., 812536., 826816., 788632., 802912., 817240., 831616.,
      793144., 807520., 821944., 836416., 797656., 812128., 826648., 841216.,
      806680., 821344., 836056., 850816., 811192., 825952., 840760., 855616.,
      815704., 830560., 845464., 860416., 820216., 835168., 850168., 865216.,
      824728., 839776., 854872., 870016., 829240., 844384., 859576., 874816.,
      833752., 848992., 864280., 879616.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5996345.,  6020490.,  6072190.,  6096440.,  6148455.,  6172810.,
      6225140.,  6249600.,  7148034.,  7177260.,  7239048.,  7268400.,
      7330566.,  7360044.,  7422588.,  7452192.,  8282295.,  8316686.,
      8388478.,  8423016.,  8495249.,  8529934.,  8602608.,  8637440.,
      9398456.,  9438096.,  9519808.,  9559616.,  9641832.,  9681808.,
      9764528.,  9804672.,  8150891.,  8185870.,  8257074.,  8292200.,
      8363845.,  8399118.,  8471204.,  8506624.,  6922770.,  6953004.,
      7013784.,  7044144.,  7105302.,  7135788.,  7197324.,  7227936.,
      5714765.,  5740170.,  5790610.,  5816120.,  5866875.,  5892490.,
      5943560.,  5969280.,  7227000.,  7254320.,  7313680.,  7341120.,
      7400840.,  7428400.,  7488480.,  7516160.,  8620656.,  8653728.,
      8724672.,  8757888.,  8829264.,  8862624.,  8934432.,  8967936.,
      9995272.,  10034192., 10116624., 10155712., 10238648., 10277904.,
      10361344., 10400768., 11350080., 11394944., 11488768., 11533824.,
      11628224., 11673472., 11768448., 11813888., 9851240.,  9890832.,
      9972592.,  10012352., 10094616., 10134544., 10217312., 10257408.,
      8373744.,  8407968.,  8477760.,  8512128.,  8582352.,  8616864.,
      8687520.,  8722176.,  6918360.,  6947120.,  7005040.,  7033920.,
      7092200.,  7121200.,  7179840.,  7208960.,  8612055.,  8643030.,
      8709570.,  8740680.,  8807625.,  8838870.,  8906220.,  8937600.,
      10273950., 10311444., 10390968., 10428624., 10508634., 10546452.,
      10626948., 10664928., 11913657., 11957778., 12050178., 12094488.,
      12187455., 12231954., 12325488., 12370176., 13530312., 13581168.,
      13686336., 13737408., 13843224., 13894512., 14000976., 14052480.,
      11746245., 11791122., 11882766., 11927832., 12020043., 12065298.,
      12158076., 12203520., 9986958.,  10025748., 10103976., 10142928.,
      10221642., 10260756., 10339956., 10379232., 8253315.,  8285910.,
      8350830.,  8383560.,  8448885.,  8481750.,  8547480.,  8580480.,
      10120790., 10155900., 10229140., 10264400., 10338090., 10373500.,
      10447640., 10483200., 12071052., 12113544., 12201072., 12243744.,
      12331812., 12374664., 12463272., 12506304., 13994442., 14044436.,
      14146132., 14196336., 14298662., 14349076., 14452032., 14502656.,
      15890000., 15947616., 16063360., 16121216., 16237680., 16295776.,
      16412960., 16471296., 13792898., 13843732., 13944588., 13995632.,
      14097118., 14148372., 14250488., 14301952., 11725548., 11769480.,
      11855568., 11899680., 11986308., 12030600., 12117768., 12162240.,
      9688910.,  9725820.,  9797260.,  9834320.,  9906210.,  9943420.,
      10015760., 10053120., 8921335.,  8954070.,  9021410.,  9054280.,
      9122025.,  9155030.,  9223180.,  9256320.,  10634334., 10673940.,
      10754424., 10794192., 10875162., 10915092., 10996548., 11036640.,
      12321561., 12368146., 12461666., 12508440., 12602527., 12649490.,
      12744144., 12791296., 13982152., 14035824., 14142272., 14196160.,
      14303256., 14357360., 14465104., 14519424., 12129061., 12176402.,
      12269166., 12316696., 12410027., 12457746., 12551644., 12599552.,
      10304334., 10345236., 10424424., 10465488., 10545162., 10586388.,
      10666548., 10707936., 8508835.,  8543190.,  8608910.,  8643400.,
      8709525.,  8744150.,  8810680.,  8845440.,  8069240.,  8099120.,
      8161040.,  8191040.,  8253320.,  8283440.,  8346080.,  8376320.,
      9619056.,  9655200.,  9729216.,  9765504.,  9839952.,  9876384.,
      9951264.,  9987840.,  11145736., 11188240., 11274256., 11316928.,
      11403448., 11446288., 11533312., 11576320., 12648512., 12697472.,
      12795392., 12844544., 12943040., 12992384., 13091456., 13140992.,
      10973032., 11016208., 11101552., 11144896., 11230744., 11274256.,
      11360608., 11404288., 9322992.,  9360288.,  9433152.,  9470592.,
      9543888.,  9581472.,  9655200.,  9692928.,  7699160.,  7730480.,
      7790960.,  7822400.,  7883240.,  7914800.,  7976000.,  8007680.,
      6752985.,  6779530.,  6833950.,  6860600.,  6915335.,  6942090.,
      6997140.,  7024000.,  8045250.,  8077356.,  8142408.,  8174640.,
      8240070.,  8272428.,  8338236.,  8370720.,  9316503.,  9354254.,
      9429854.,  9467752.,  9543793.,  9581838.,  9658320.,  9696512.,
      10566072., 10609552., 10695616., 10739264., 10825832., 10869648.,
      10956720., 11000704., 9160011.,  9198350.,  9273362.,  9311848.,
      9387301.,  9425934.,  9501828.,  9540608.,  7776978.,  7810092.,
      7874136.,  7907376.,  7971798.,  8005164.,  8069964.,  8103456.,
      6417645.,  6445450.,  6498610.,  6526520.,  6579995.,  6608010.,
      6661800.,  6689920.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1171304., 1180208., 1191392., 1200320., 1211576., 1220528., 1231856.,
      1240832., 1180232., 1189232., 1200512., 1209536., 1220888., 1229936.,
      1241360., 1250432., 1189160., 1198256., 1209632., 1218752., 1230200.,
      1239344., 1250864., 1260032., 1198088., 1207280., 1218752., 1227968.,
      1239512., 1248752., 1260368., 1269632., 1207016., 1216304., 1227872.,
      1237184., 1248824., 1258160., 1269872., 1279232., 1215944., 1225328.,
      1236992., 1246400., 1258136., 1267568., 1279376., 1288832., 1224872.,
      1234352., 1246112., 1255616., 1267448., 1276976., 1288880., 1298432.,
      1242728., 1252400., 1264352., 1274048., 1286072., 1295792., 1307888.,
      1317632., 1251656., 1261424., 1273472., 1283264., 1295384., 1305200.,
      1317392., 1327232., 1260584., 1270448., 1282592., 1292480., 1304696.,
      1314608., 1326896., 1336832., 1269512., 1279472., 1291712., 1301696.,
      1314008., 1324016., 1336400., 1346432., 1278440., 1288496., 1300832.,
      1310912., 1323320., 1333424., 1345904., 1356032., 1287368., 1297520.,
      1309952., 1320128., 1332632., 1342832., 1355408., 1365632., 1296296.,
      1306544., 1319072., 1329344., 1341944., 1352240., 1364912., 1375232.,
      1314152., 1324592., 1337312., 1347776., 1360568., 1371056., 1383920.,
      1394432., 1323080., 1333616., 1346432., 1356992., 1369880., 1380464.,
      1393424., 1404032., 1332008., 1342640., 1355552., 1366208., 1379192.,
      1389872., 1402928., 1413632., 1340936., 1351664., 1364672., 1375424.,
      1388504., 1399280., 1412432., 1423232., 1349864., 1360688., 1373792.,
      1384640., 1397816., 1408688., 1421936., 1432832., 1358792., 1369712.,
      1382912., 1393856., 1407128., 1418096., 1431440., 1442432., 1367720.,
      1378736., 1392032., 1403072., 1416440., 1427504., 1440944., 1452032.,
      1385576., 1396784., 1410272., 1421504., 1435064., 1446320., 1459952.,
      1471232., 1394504., 1405808., 1419392., 1430720., 1444376., 1455728.,
      1469456., 1480832., 1403432., 1414832., 1428512., 1439936., 1453688.,
      1465136., 1478960., 1490432., 1412360., 1423856., 1437632., 1449152.,
      1463000., 1474544., 1488464., 1500032., 1421288., 1432880., 1446752.,
      1458368., 1472312., 1483952., 1497968., 1509632., 1430216., 1441904.,
      1455872., 1467584., 1481624., 1493360., 1507472., 1519232., 1439144.,
      1450928., 1464992., 1476800., 1490936., 1502768., 1516976., 1528832.,
      1457000., 1468976., 1483232., 1495232., 1509560., 1521584., 1535984.,
      1548032., 1465928., 1478000., 1492352., 1504448., 1518872., 1530992.,
      1545488., 1557632., 1474856., 1487024., 1501472., 1513664., 1528184.,
      1540400., 1554992., 1567232., 1483784., 1496048., 1510592., 1522880.,
      1537496., 1549808., 1564496., 1576832., 1492712., 1505072., 1519712.,
      1532096., 1546808., 1559216., 1574000., 1586432., 1501640., 1514096.,
      1528832., 1541312., 1556120., 1568624., 1583504., 1596032., 1510568.,
      1523120., 1537952., 1550528., 1565432., 1578032., 1593008., 1605632.,
      1528424., 1541168., 1556192., 1568960., 1584056., 1596848., 1612016.,
      1624832., 1537352., 1550192., 1565312., 1578176., 1593368., 1606256.,
      1621520., 1634432., 1546280., 1559216., 1574432., 1587392., 1602680.,
      1615664., 1631024., 1644032., 1555208., 1568240., 1583552., 1596608.,
      1611992., 1625072., 1640528., 1653632., 1564136., 1577264., 1592672.,
      1605824., 1621304., 1634480., 1650032., 1663232., 1573064., 1586288.,
      1601792., 1615040., 1630616., 1643888., 1659536., 1672832., 1581992.,
      1595312., 1610912., 1624256., 1639928., 1653296., 1669040., 1682432.,
      1599848., 1613360., 1629152., 1642688., 1658552., 1672112., 1688048.,
      1701632., 1608776., 1622384., 1638272., 1651904., 1667864., 1681520.,
      1697552., 1711232., 1617704., 1631408., 1647392., 1661120., 1677176.,
      1690928., 1707056., 1720832., 1626632., 1640432., 1656512., 1670336.,
      1686488., 1700336., 1716560., 1730432., 1635560., 1649456., 1665632.,
      1679552., 1695800., 1709744., 1726064., 1740032., 1644488., 1658480.,
      1674752., 1688768., 1705112., 1719152., 1735568., 1749632., 1653416.,
      1667504., 1683872., 1697984., 1714424., 1728560., 1745072., 1759232.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6331425.,  6355570.,  6379715.,  6403860.,  6457410.,  6481660.,
      6505910.,  6530160.,  6584235.,  6608590.,  6632945.,  6657300.,
      6711900.,  6736360.,  6760820.,  6785280.,  7440858.,  7470084.,
      7499310.,  7528536.,  7592040.,  7621392.,  7650744.,  7680096.,
      7744230.,  7773708.,  7803186.,  7832664.,  7897428.,  7927032.,
      7956636.,  7986240.,  8494871.,  8529262.,  8563653.,  8598044.,
      8671250.,  8705788.,  8740326.,  8774864.,  8848805.,  8883490.,
      8918175.,  8952860.,  9027536.,  9062368.,  9097200.,  9132032.,
      9492120.,  9531760.,  9571400.,  9611040.,  9693696.,  9733504.,
      9773312.,  9813120.,  9896616.,  9936592.,  9976568.,  10016544.,
      10100880., 10141024., 10181168., 10221312., 8088115.,  8123094.,
      8158073.,  8193052.,  8264494.,  8299620.,  8334746.,  8369872.,
      8442049.,  8477322.,  8512595.,  8547868.,  8620780.,  8656200.,
      8691620.,  8727040.,  6743562.,  6773796.,  6804030.,  6834264.,
      6894744.,  6925104.,  6955464.,  6985824.,  7046934.,  7077420.,
      7107906.,  7138392.,  7200132.,  7230744.,  7261356.,  7291968.,
      5459805.,  5485210.,  5510615.,  5536020.,  5585790.,  5611300.,
      5636810.,  5662320.,  5712615.,  5738230.,  5763845.,  5789460.,
      5840280.,  5866000.,  5891720.,  5917440.,  6777400.,  6804720.,
      6832040.,  6859360.,  6919920.,  6947360.,  6974800.,  7002240.,
      7063400.,  7090960.,  7118520.,  7146080.,  7207840.,  7235520.,
      7263200.,  7290880.,  7955376.,  7988448.,  8021520.,  8054592.,
      8126400.,  8159616.,  8192832.,  8226048.,  8298576.,  8331936.,
      8365296.,  8398656.,  8471904.,  8505408.,  8538912.,  8572416.,
      9070600.,  9109520.,  9148440.,  9187360.,  9270128.,  9309216.,
      9348304.,  9387392.,  9471000.,  9510256.,  9549512.,  9588768.,
      9673216.,  9712640.,  9752064.,  9791488.,  10121536., 10166400.,
      10211264., 10256128., 10349568., 10394624., 10439680., 10484736.,
      10579136., 10624384., 10669632., 10714880., 10810240., 10855680.,
      10901120., 10946560., 8609832.,  8649424.,  8689016.,  8728608.,
      8809360.,  8849120.,  8888880.,  8928640.,  9010232.,  9050160.,
      9090088.,  9130016.,  9212448.,  9252544.,  9292640.,  9332736.,
      7165488.,  7199712.,  7233936.,  7268160.,  7336512.,  7370880.,
      7405248.,  7439616.,  7508688.,  7543200.,  7577712.,  7612224.,
      7682016.,  7716672.,  7751328.,  7785984.,  5790040.,  5818800.,
      5847560.,  5876320.,  5932560.,  5961440.,  5990320.,  6019200.,
      6076040.,  6105040.,  6134040.,  6163040.,  6220480.,  6249600.,
      6278720.,  6307840.,  8210095.,  8241070.,  8272045.,  8303020.,
      8371710.,  8402820.,  8433930.,  8465040.,  8534405.,  8565650.,
      8596895.,  8628140.,  8698180.,  8729560.,  8760940.,  8792320.,
      9650886.,  9688380.,  9725874.,  9763368.,  9844824.,  9882480.,
      9920136.,  9957792.,  10040058., 10077876., 10115694., 10153512.,
      10236588., 10274568., 10312548., 10350528., 11020569., 11064690.,
      11108811., 11152932., 11246830., 11291140., 11335450., 11379760.,
      11474603., 11519102., 11563601., 11608100., 11703888., 11748576.,
      11793264., 11837952., 12317416., 12368272., 12419128., 12469984.,
      12576000., 12627072., 12678144., 12729216., 12836312., 12887600.,
      12938888., 12990176., 13098352., 13149856., 13201360., 13252864.,
      10498621., 10543498., 10588375., 10633252., 10724882., 10769948.,
      10815014., 10860080., 10952655., 10997910., 11043165., 11088420.,
      11181940., 11227384., 11272828., 11318272., 8756118.,  8794908.,
      8833698.,  8872488.,  8950056.,  8989008.,  9027960.,  9066912.,
      9145290.,  9184404.,  9223518.,  9262632.,  9341820.,  9381096.,
      9420372.,  9459648.,  7091635.,  7124230.,  7156825.,  7189420.,
      7253250.,  7285980.,  7318710.,  7351440.,  7415945.,  7448810.,
      7481675.,  7514540.,  7579720.,  7612720.,  7645720.,  7678720.,
      9807750.,  9842860.,  9877970.,  9913080.,  9988460.,  10023720.,
      10058980., 10094240., 10170370., 10205780., 10241190., 10276600.,
      10353480., 10389040., 10424600., 10460160., 11535132., 11577624.,
      11620116., 11662608., 11751984., 11794656., 11837328., 11880000.,
      11970276., 12013128., 12055980., 12098832., 12190008., 12233040.,
      12276072., 12319104., 13179978., 13229972., 13279966., 13329960.,
      13432972., 13483176., 13533380., 13583584., 13687646., 13738060.,
      13788474., 13838888., 13944000., 13994624., 14045248., 14095872.,
      14740368., 14797984., 14855600., 14913216., 15029504., 15087360.,
      15145216., 15203072., 15320560., 15378656., 15436752., 15494848.,
      15613536., 15671872., 15730208., 15788544., 12575346., 12626180.,
      12677014., 12727848., 12828340., 12879384., 12930428., 12981472.,
      13083014., 13134268., 13185522., 13236776., 13339368., 13390832.,
      13442296., 13493760., 10498620., 10542552., 10586484., 10630416.,
      10715472., 10759584., 10803696., 10847808., 10933764., 10978056.,
      11022348., 11066640., 11153496., 11197968., 11242440., 11286912.,
      8512110.,  8549020.,  8585930.,  8622840.,  8692820.,  8729880.,
      8766940.,  8804000.,  8874730.,  8911940.,  8949150.,  8986360.,
      9057840.,  9095200.,  9132560.,  9169920.,  8744975.,  8777710.,
      8810445.,  8843180.,  8911710.,  8944580.,  8977450.,  9010320.,
      9079525.,  9112530.,  9145535.,  9178540.,  9248420.,  9281560.,
      9314700.,  9347840.,  10271238., 10310844., 10350450., 10390056.,
      10471320., 10511088., 10550856., 10590624., 10672698., 10712628.,
      10752558., 10792488., 10875372., 10915464., 10955556., 10995648.,
      11719225., 11765810., 11812395., 11858980., 11952654., 11999428.,
      12046202., 12092976., 12187595., 12234558., 12281521., 12328484.,
      12424048., 12471200., 12518352., 12565504., 13087208., 13140880.,
      13194552., 13248224., 13353984., 13407872., 13461760., 13515648.,
      13622488., 13676592., 13730696., 13784800., 13892720., 13947040.,
      14001360., 14055680., 11147101., 11194442., 11241783., 11289124.,
      11380530., 11428060., 11475590., 11523120., 11615471., 11663190.,
      11710909., 11758628., 11851924., 11899832., 11947740., 11995648.,
      9290454.,  9331356.,  9372258.,  9413160.,  9490536.,  9531600.,
      9572664.,  9613728.,  9691914.,  9733140.,  9774366.,  9815592.,
      9894588.,  9935976.,  9977364.,  10018752., 7518995.,  7553350.,
      7587705.,  7622060.,  7685730.,  7720220.,  7754710.,  7789200.,
      7853545.,  7888170.,  7922795.,  7957420.,  8022440.,  8057200.,
      8091960.,  8126720.,  8459320.,  8489200.,  8519080.,  8548960.,
      8612080.,  8642080.,  8672080.,  8702080.,  8765800.,  8795920.,
      8826040.,  8856160.,  8920480.,  8950720.,  8980960.,  9011200.,
      9949104.,  9985248.,  10021392., 10057536., 10132416., 10168704.,
      10204992., 10241280., 10316880., 10353312., 10389744., 10426176.,
      10502496., 10539072., 10575648., 10612224., 11367944., 11410448.,
      11452952., 11495456., 11581808., 11624480., 11667152., 11709824.,
      11797016., 11839856., 11882696., 11925536., 12013568., 12056576.,
      12099584., 12142592., 12714304., 12763264., 12812224., 12861184.,
      12958720., 13007872., 13057024., 13106176., 13204672., 13254016.,
      13303360., 13352704., 13452160., 13501696., 13551232., 13600768.,
      10849832., 10893008., 10936184., 10979360., 11063696., 11107040.,
      11150384., 11193728., 11278904., 11322416., 11365928., 11409440.,
      11495456., 11539136., 11582816., 11626496., 9060912.,  9098208.,
      9135504.,  9172800.,  9244224.,  9281664.,  9319104.,  9356544.,
      9428688.,  9466272.,  9503856.,  9541440.,  9614304.,  9652032.,
      9689760.,  9727488.,  7349080.,  7380400.,  7411720.,  7443040.,
      7501840.,  7533280.,  7564720.,  7596160.,  7655560.,  7687120.,
      7718680.,  7750240.,  7810240.,  7841920.,  7873600.,  7905280.,
      7000065.,  7026610.,  7053155.,  7079700.,  7133730.,  7160380.,
      7187030.,  7213680.,  7268235.,  7294990.,  7321745.,  7348500.,
      7403580.,  7430440.,  7457300.,  7484160.,  8215578.,  8247684.,
      8279790.,  8311896.,  8375976.,  8408208.,  8440440.,  8472672.,
      8537382.,  8569740.,  8602098.,  8634456.,  8699796.,  8732280.,
      8764764.,  8797248.,  9366455.,  9404206.,  9441957.,  9479708.,
      9553586.,  9591484.,  9629382.,  9667280.,  9741893.,  9779938.,
      9817983.,  9856028.,  9931376.,  9969568.,  10007760., 10045952.,
      10451352., 10494832., 10538312., 10581792., 10665216., 10708864.,
      10752512., 10796160., 10880424., 10924240., 10968056., 11011872.,
      11096976., 11140960., 11184944., 11228928., 8895187.,  8933526.,
      8971865.,  9010204.,  9082318.,  9120804.,  9159290.,  9197776.,
      9270625.,  9309258.,  9347891.,  9386524.,  9460108.,  9498888.,
      9537668.,  9576448.,  7407690.,  7440804.,  7473918.,  7507032.,
      7568088.,  7601328.,  7634568.,  7667808.,  7729494.,  7762860.,
      7796226.,  7829592.,  7891908.,  7925400.,  7958892.,  7992384.,
      5990205.,  6018010.,  6045815.,  6073620.,  6123870.,  6151780.,
      6179690.,  6207600.,  6258375.,  6286390.,  6314405.,  6342420.,
      6393720.,  6421840.,  6449960.,  6478080.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2333704., 2342608., 2351512., 2360416., 2373856., 2382784., 2391712.,
      2400640., 2414200., 2423152., 2432104., 2441056., 2454736., 2463712.,
      2472688., 2481664., 2351464., 2360464., 2369464., 2378464., 2392000.,
      2401024., 2410048., 2419072., 2432728., 2441776., 2450824., 2459872.,
      2473648., 2482720., 2491792., 2500864., 2369224., 2378320., 2387416.,
      2396512., 2410144., 2419264., 2428384., 2437504., 2451256., 2460400.,
      2469544., 2478688., 2492560., 2501728., 2510896., 2520064., 2386984.,
      2396176., 2405368., 2414560., 2428288., 2437504., 2446720., 2455936.,
      2469784., 2479024., 2488264., 2497504., 2511472., 2520736., 2530000.,
      2539264., 2404744., 2414032., 2423320., 2432608., 2446432., 2455744.,
      2465056., 2474368., 2488312., 2497648., 2506984., 2516320., 2530384.,
      2539744., 2549104., 2558464., 2422504., 2431888., 2441272., 2450656.,
      2464576., 2473984., 2483392., 2492800., 2506840., 2516272., 2525704.,
      2535136., 2549296., 2558752., 2568208., 2577664., 2440264., 2449744.,
      2459224., 2468704., 2482720., 2492224., 2501728., 2511232., 2525368.,
      2534896., 2544424., 2553952., 2568208., 2577760., 2587312., 2596864.,
      2475784., 2485456., 2495128., 2504800., 2519008., 2528704., 2538400.,
      2548096., 2562424., 2572144., 2581864., 2591584., 2606032., 2615776.,
      2625520., 2635264., 2493544., 2503312., 2513080., 2522848., 2537152.,
      2546944., 2556736., 2566528., 2580952., 2590768., 2600584., 2610400.,
      2624944., 2634784., 2644624., 2654464., 2511304., 2521168., 2531032.,
      2540896., 2555296., 2565184., 2575072., 2584960., 2599480., 2609392.,
      2619304., 2629216., 2643856., 2653792., 2663728., 2673664., 2529064.,
      2539024., 2548984., 2558944., 2573440., 2583424., 2593408., 2603392.,
      2618008., 2628016., 2638024., 2648032., 2662768., 2672800., 2682832.,
      2692864., 2546824., 2556880., 2566936., 2576992., 2591584., 2601664.,
      2611744., 2621824., 2636536., 2646640., 2656744., 2666848., 2681680.,
      2691808., 2701936., 2712064., 2564584., 2574736., 2584888., 2595040.,
      2609728., 2619904., 2630080., 2640256., 2655064., 2665264., 2675464.,
      2685664., 2700592., 2710816., 2721040., 2731264., 2582344., 2592592.,
      2602840., 2613088., 2627872., 2638144., 2648416., 2658688., 2673592.,
      2683888., 2694184., 2704480., 2719504., 2729824., 2740144., 2750464.,
      2617864., 2628304., 2638744., 2649184., 2664160., 2674624., 2685088.,
      2695552., 2710648., 2721136., 2731624., 2742112., 2757328., 2767840.,
      2778352., 2788864., 2635624., 2646160., 2656696., 2667232., 2682304.,
      2692864., 2703424., 2713984., 2729176., 2739760., 2750344., 2760928.,
      2776240., 2786848., 2797456., 2808064., 2653384., 2664016., 2674648.,
      2685280., 2700448., 2711104., 2721760., 2732416., 2747704., 2758384.,
      2769064., 2779744., 2795152., 2805856., 2816560., 2827264., 2671144.,
      2681872., 2692600., 2703328., 2718592., 2729344., 2740096., 2750848.,
      2766232., 2777008., 2787784., 2798560., 2814064., 2824864., 2835664.,
      2846464., 2688904., 2699728., 2710552., 2721376., 2736736., 2747584.,
      2758432., 2769280., 2784760., 2795632., 2806504., 2817376., 2832976.,
      2843872., 2854768., 2865664., 2706664., 2717584., 2728504., 2739424.,
      2754880., 2765824., 2776768., 2787712., 2803288., 2814256., 2825224.,
      2836192., 2851888., 2862880., 2873872., 2884864., 2724424., 2735440.,
      2746456., 2757472., 2773024., 2784064., 2795104., 2806144., 2821816.,
      2832880., 2843944., 2855008., 2870800., 2881888., 2892976., 2904064.,
      2759944., 2771152., 2782360., 2793568., 2809312., 2820544., 2831776.,
      2843008., 2858872., 2870128., 2881384., 2892640., 2908624., 2919904.,
      2931184., 2942464., 2777704., 2789008., 2800312., 2811616., 2827456.,
      2838784., 2850112., 2861440., 2877400., 2888752., 2900104., 2911456.,
      2927536., 2938912., 2950288., 2961664., 2795464., 2806864., 2818264.,
      2829664., 2845600., 2857024., 2868448., 2879872., 2895928., 2907376.,
      2918824., 2930272., 2946448., 2957920., 2969392., 2980864., 2813224.,
      2824720., 2836216., 2847712., 2863744., 2875264., 2886784., 2898304.,
      2914456., 2926000., 2937544., 2949088., 2965360., 2976928., 2988496.,
      3000064., 2830984., 2842576., 2854168., 2865760., 2881888., 2893504.,
      2905120., 2916736., 2932984., 2944624., 2956264., 2967904., 2984272.,
      2995936., 3007600., 3019264., 2848744., 2860432., 2872120., 2883808.,
      2900032., 2911744., 2923456., 2935168., 2951512., 2963248., 2974984.,
      2986720., 3003184., 3014944., 3026704., 3038464., 2866504., 2878288.,
      2890072., 2901856., 2918176., 2929984., 2941792., 2953600., 2970040.,
      2981872., 2993704., 3005536., 3022096., 3033952., 3045808., 3057664.,
      2902024., 2914000., 2925976., 2937952., 2954464., 2966464., 2978464.,
      2990464., 3007096., 3019120., 3031144., 3043168., 3059920., 3071968.,
      3084016., 3096064., 2919784., 2931856., 2943928., 2956000., 2972608.,
      2984704., 2996800., 3008896., 3025624., 3037744., 3049864., 3061984.,
      3078832., 3090976., 3103120., 3115264., 2937544., 2949712., 2961880.,
      2974048., 2990752., 3002944., 3015136., 3027328., 3044152., 3056368.,
      3068584., 3080800., 3097744., 3109984., 3122224., 3134464., 2955304.,
      2967568., 2979832., 2992096., 3008896., 3021184., 3033472., 3045760.,
      3062680., 3074992., 3087304., 3099616., 3116656., 3128992., 3141328.,
      3153664., 2973064., 2985424., 2997784., 3010144., 3027040., 3039424.,
      3051808., 3064192., 3081208., 3093616., 3106024., 3118432., 3135568.,
      3148000., 3160432., 3172864., 2990824., 3003280., 3015736., 3028192.,
      3045184., 3057664., 3070144., 3082624., 3099736., 3112240., 3124744.,
      3137248., 3154480., 3167008., 3179536., 3192064., 3008584., 3021136.,
      3033688., 3046240., 3063328., 3075904., 3088480., 3101056., 3118264.,
      3130864., 3143464., 3156064., 3173392., 3186016., 3198640., 3211264.,
      3044104., 3056848., 3069592., 3082336., 3099616., 3112384., 3125152.,
      3137920., 3155320., 3168112., 3180904., 3193696., 3211216., 3224032.,
      3236848., 3249664., 3061864., 3074704., 3087544., 3100384., 3117760.,
      3130624., 3143488., 3156352., 3173848., 3186736., 3199624., 3212512.,
      3230128., 3243040., 3255952., 3268864., 3079624., 3092560., 3105496.,
      3118432., 3135904., 3148864., 3161824., 3174784., 3192376., 3205360.,
      3218344., 3231328., 3249040., 3262048., 3275056., 3288064., 3097384.,
      3110416., 3123448., 3136480., 3154048., 3167104., 3180160., 3193216.,
      3210904., 3223984., 3237064., 3250144., 3267952., 3281056., 3294160.,
      3307264., 3115144., 3128272., 3141400., 3154528., 3172192., 3185344.,
      3198496., 3211648., 3229432., 3242608., 3255784., 3268960., 3286864.,
      3300064., 3313264., 3326464., 3132904., 3146128., 3159352., 3172576.,
      3190336., 3203584., 3216832., 3230080., 3247960., 3261232., 3274504.,
      3287776., 3305776., 3319072., 3332368., 3345664., 3150664., 3163984.,
      3177304., 3190624., 3208480., 3221824., 3235168., 3248512., 3266488.,
      3279856., 3293224., 3306592., 3324688., 3338080., 3351472., 3364864.,
      3186184., 3199696., 3213208., 3226720., 3244768., 3258304., 3271840.,
      3285376., 3303544., 3317104., 3330664., 3344224., 3362512., 3376096.,
      3389680., 3403264., 3203944., 3217552., 3231160., 3244768., 3262912.,
      3276544., 3290176., 3303808., 3322072., 3335728., 3349384., 3363040.,
      3381424., 3395104., 3408784., 3422464., 3221704., 3235408., 3249112.,
      3262816., 3281056., 3294784., 3308512., 3322240., 3340600., 3354352.,
      3368104., 3381856., 3400336., 3414112., 3427888., 3441664., 3239464.,
      3253264., 3267064., 3280864., 3299200., 3313024., 3326848., 3340672.,
      3359128., 3372976., 3386824., 3400672., 3419248., 3433120., 3446992.,
      3460864., 3257224., 3271120., 3285016., 3298912., 3317344., 3331264.,
      3345184., 3359104., 3377656., 3391600., 3405544., 3419488., 3438160.,
      3452128., 3466096., 3480064., 3274984., 3288976., 3302968., 3316960.,
      3335488., 3349504., 3363520., 3377536., 3396184., 3410224., 3424264.,
      3438304., 3457072., 3471136., 3485200., 3499264., 3292744., 3306832.,
      3320920., 3335008., 3353632., 3367744., 3381856., 3395968., 3414712.,
      3428848., 3442984., 3457120., 3475984., 3490144., 3504304., 3518464.};
  const std::array<int, 4> in_shape = {{3, 10, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3006633., 3510066., 4014108., 4518738., 4018644., 3518004., 3016839.,
      3467256., 4047036., 4627296., 5208012., 4630752., 4053084., 3475032.,
      3931281., 4587786., 5244588., 5901660., 5246532., 4591188., 3935655.,
      4397250., 5130615., 5864040., 6597495., 5864040., 5130615., 4397250.,
      3935655., 4591188., 5246532., 5901660., 5244588., 4587786., 3931281.,
      3475032., 4053084., 4630752., 5208012., 4627296., 4047036., 3467256.,
      3016839., 3518004., 4018644., 4518738., 4014108., 3510066., 3006633.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x9x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      97422.,  98088.,  98754.,  99420.,  100086., 100752., 101418.,
      103416., 104082., 104748., 105414., 106080., 106746., 107412.,
      109410., 110076., 110742., 111408., 112074., 112740., 113406.,
      115404., 116070., 116736., 117402., 118068., 118734., 119400.,
      121398., 122064., 122730., 123396., 124062., 124728., 125394.,
      127392., 128058., 128724., 129390., 130056., 130722., 131388.,
      133386., 134052., 134718., 135384., 136050., 136716., 137382.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5998083.,  6013266.,  7002345.,  7020132.,  8007804.,  8028216.,
      9014418.,  9037476.,  8016708.,  8037288.,  7017927.,  7036008.,
      6018117.,  6033678.,  6916512.,  6934512.,  8072988.,  8094072.,
      9230400.,  9254592.,  10388700., 10416024., 9237120.,  9261504.,
      8084748.,  8106168.,  6931632.,  6950064.,  7841583.,  7862562.,
      9151002.,  9175572.,  10460988., 10489176., 11771487., 11803320.,
      10464660., 10493064., 9157428.,  9182376.,  7849845.,  7871310.,
      8770380.,  8794500.,  10232985., 10261230., 11695680., 11728080.,
      13158405., 13194990., 11695440., 11728080., 10232565., 10261230.,
      8769840.,  8794500.,  7848873.,  7871310.,  9156105.,  9182376.,
      10462932., 10493064., 11769300., 11803320., 10458828., 10489176.,
      9148923.,  9175572.,  7839639.,  7862562.,  6929472.,  6950064.,
      8082060.,  8106168.,  9233856.,  9261504.,  10384812., 10416024.,
      9226752.,  9254592.,  8069628.,  8094072.,  6913488.,  6934512.,
      6015093.,  6033678.,  7014252.,  7036008.,  8012340.,  8037288.,
      9009315.,  9037476.,  8003100.,  8028216.,  6998082.,  7020132.,
      5994303.,  6013266.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x9x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      191046., 194844., 192342., 196176., 193638., 197508., 194934., 198840.,
      196230., 200172., 197526., 201504., 198822., 202836., 202710., 206832.,
      204006., 208164., 205302., 209496., 206598., 210828., 207894., 212160.,
      209190., 213492., 210486., 214824., 214374., 218820., 215670., 220152.,
      216966., 221484., 218262., 222816., 219558., 224148., 220854., 225480.,
      222150., 226812., 226038., 230808., 227334., 232140., 228630., 233472.,
      229926., 234804., 231222., 236136., 232518., 237468., 233814., 238800.,
      237702., 242796., 238998., 244128., 240294., 245460., 241590., 246792.,
      242886., 248124., 244182., 249456., 245478., 250788., 249366., 254784.,
      250662., 256116., 251958., 257448., 253254., 258780., 254550., 260112.,
      255846., 261444., 257142., 262776., 261030., 266772., 262326., 268104.,
      263622., 269436., 264918., 270768., 266214., 272100., 267510., 273432.,
      268806., 274764.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3834551., 3849734., 3864917., 3880100., 4552791., 4570578., 4588365.,
      4606152., 5317436., 5337848., 5358260., 5378672., 6077714., 6100772.,
      6123830., 6146888., 5445668., 5466248., 5486828., 5507408., 4819181.,
      4837262., 4855343., 4873424., 4198337., 4213898., 4229459., 4245020.,
      4694768., 4712768., 4730768., 4748768., 5556700., 5577784., 5598868.,
      5619952., 6468608., 6492800., 6516992., 6541184., 7375100., 7402424.,
      7429748., 7457072., 6597568., 6621952., 6646336., 6670720., 5826668.,
      5848088., 5869508., 5890928., 5062496., 5080928., 5099360., 5117792.,
      5540459., 5561438., 5582417., 5603396., 6542906., 6567476., 6592046.,
      6616616., 7598684., 7626872., 7655060., 7683248., 8647781., 8679614.,
      8711447., 8743280., 7726644., 7755048., 7783452., 7811856., 6813428.,
      6838376., 6863324., 6888272., 5908241., 5929706., 5951171., 5972636.,
      6365792., 6389912., 6414032., 6438152., 7504605., 7532850., 7561095.,
      7589340., 8699888., 8732288., 8764688., 8797088., 9887009., 9923594.,
      9960179., 9996764., 8825120., 8857760., 8890400., 8923040., 7772657.,
      7801322., 7829987., 7858652., 6729740., 6754400., 6779060., 6803720.,
      6275501., 6297938., 6320375., 6342812., 7404915., 7431186., 7457457.,
      7483728., 8595956., 8626088., 8656220., 8686352., 9779396., 9813416.,
      9847436., 9881456., 8734988., 8765336., 8795684., 8826032., 7699421.,
      7726070., 7752719., 7779368., 6672803., 6695726., 6718649., 6741572.,
      6133776., 6154368., 6174960., 6195552., 7129836., 7153944., 7178052.,
      7202160., 8192384., 8220032., 8247680., 8275328., 9247596., 9278808.,
      9310020., 9341232., 8204608., 8232448., 8260288., 8288128., 7169660.,
      7194104., 7218548., 7242992., 6142848., 6163872., 6184896., 6205920.,
      5379153., 5397738., 5416323., 5434908., 6250972., 6272728., 6294484.,
      6316240., 7194356., 7219304., 7244252., 7269200., 8130885., 8159046.,
      8187207., 8215368., 7215132., 7240248., 7265364., 7290480., 6306914.,
      6328964., 6351014., 6373064., 5406315., 5425278., 5444241., 5463204.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x9x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      378294., 382092., 385890., 389688., 380850., 384684., 388518., 392352.,
      383406., 387276., 391146., 395016., 385962., 389868., 393774., 397680.,
      388518., 392460., 396402., 400344., 391074., 395052., 399030., 403008.,
      393630., 397644., 401658., 405672., 401298., 405420., 409542., 413664.,
      403854., 408012., 412170., 416328., 406410., 410604., 414798., 418992.,
      408966., 413196., 417426., 421656., 411522., 415788., 420054., 424320.,
      414078., 418380., 422682., 426984., 416634., 420972., 425310., 429648.,
      424302., 428748., 433194., 437640., 426858., 431340., 435822., 440304.,
      429414., 433932., 438450., 442968., 431970., 436524., 441078., 445632.,
      434526., 439116., 443706., 448296., 437082., 441708., 446334., 450960.,
      439638., 444300., 448962., 453624., 447306., 452076., 456846., 461616.,
      449862., 454668., 459474., 464280., 452418., 457260., 462102., 466944.,
      454974., 459852., 464730., 469608., 457530., 462444., 467358., 472272.,
      460086., 465036., 469986., 474936., 462642., 467628., 472614., 477600.,
      470310., 475404., 480498., 485592., 472866., 477996., 483126., 488256.,
      475422., 480588., 485754., 490920., 477978., 483180., 488382., 493584.,
      480534., 485772., 491010., 496248., 483090., 488364., 493638., 498912.,
      485646., 490956., 496266., 501576., 493314., 498732., 504150., 509568.,
      495870., 501324., 506778., 512232., 498426., 503916., 509406., 514896.,
      500982., 506508., 512034., 517560., 503538., 509100., 514662., 520224.,
      506094., 511692., 517290., 522888., 508650., 514284., 519918., 525552.,
      516318., 522060., 527802., 533544., 518874., 524652., 530430., 536208.,
      521430., 527244., 533058., 538872., 523986., 529836., 535686., 541536.,
      526542., 532428., 538314., 544200., 529098., 535020., 540942., 546864.,
      531654., 537612., 543570., 549528.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1808222., 1838756., 2146081., 2181832., 2535272., 2576496., 2925279.,
      2971976., 2624328., 2665808., 2324265., 2360528., 2037718., 2069020.,
      2358416., 2394080., 2793448., 2835184., 3284416., 3332480., 3776184.,
      3830576., 3387072., 3435392., 2998888., 3041136., 2619664., 2656096.,
      2936554., 2976836., 3468991., 3515944., 4062264., 4116144., 4656617.,
      4717424., 4174488., 4228368., 3693543., 3740496., 3217218., 3257500.,
      3538852., 3582728., 4180498., 4231644., 4887664., 4946336., 5595974.,
      5662172., 4887664., 4946336., 4180498., 4231644., 3538852., 3582728.,
      3217218., 3257500., 3693543., 3740496., 4174488., 4228368., 4656617.,
      4717424., 4062264., 4116144., 3468991., 3515944., 2936554., 2976836.,
      2619664., 2656096., 2998888., 3041136., 3387072., 3435392., 3776184.,
      3830576., 3284416., 3332480., 2793448., 2835184., 2358416., 2394080.,
      2037718., 2069020., 2324265., 2360528., 2624328., 2665808., 2925279.,
      2971976., 2535272., 2576496., 2146081., 2181832., 1808222., 1838756.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x9x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      380796., 389688., 383388., 392352., 385980., 395016., 388572., 397680.,
      391164., 400344., 393756., 403008., 396348., 405672., 404124., 413664.,
      406716., 416328., 409308., 418992., 411900., 421656., 414492., 424320.,
      417084., 426984., 419676., 429648., 427452., 437640., 430044., 440304.,
      432636., 442968., 435228., 445632., 437820., 448296., 440412., 450960.,
      443004., 453624., 450780., 461616., 453372., 464280., 455964., 466944.,
      458556., 469608., 461148., 472272., 463740., 474936., 466332., 477600.,
      474108., 485592., 476700., 488256., 479292., 490920., 481884., 493584.,
      484476., 496248., 487068., 498912., 489660., 501576., 497436., 509568.,
      500028., 512232., 502620., 514896., 505212., 517560., 507804., 520224.,
      510396., 522888., 512988., 525552., 520764., 533544., 523356., 536208.,
      525948., 538872., 528540., 541536., 531132., 544200., 533724., 546864.,
      536316., 549528.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1701788., 1717180., 1748650., 1764168., 2000095., 2018114., 2054810.,
      2072976., 2344960., 2365648., 2407784., 2428640., 2704471., 2727870.,
      2775660., 2799248., 2399344., 2420112., 2462424., 2483360., 2100643.,
      2118738., 2155614., 2173856., 1833368., 1849004., 1880742., 1896504.,
      2091536., 2109472., 2145568., 2163648., 2458304., 2479312., 2521384.,
      2542560., 2875200., 2899328., 2947584., 2971904., 3310288., 3337584.,
      3392232., 3419744., 2943936., 2968192., 3016576., 3041024., 2585120.,
      2606288., 2648456., 2669792., 2249648., 2267936., 2304192., 2322624.,
      2482064., 2502356., 2542242., 2562696., 2935623., 2959230., 3005788.,
      3029584., 3443984., 3470960., 3524392., 3551584., 3975187., 4005586.,
      4066094., 4096736., 3548704., 3575600., 3629112., 3656224., 3131299.,
      3154638., 3201208., 3224736., 2729588., 2749572., 2789510., 2809656.,
      3035276., 3057224., 3101088., 3123216., 3597644., 3623204., 3674382.,
      3700152., 4219056., 4248288., 4306976., 4336448., 4867528., 4900492.,
      4966886., 5000120., 4226256., 4255456., 4314176., 4343616., 3594500.,
      3619876., 3670982., 3696568., 3035220., 3056968., 3100776., 3122704.,
      2746588., 2766724., 2806766., 2827064., 3160141., 3183566., 3230306.,
      3253920., 3572384., 3599152., 3652792., 3679776., 4016893., 4047058.,
      4107800., 4138208., 3490352., 3517040., 3570760., 3597664., 2972681.,
      2995838., 3042590., 3065936., 2517600., 2537428., 2577522., 2597512.,
      2269136., 2287136., 2323424., 2341568., 2617376., 2638288., 2680456.,
      2701536., 2969408., 2993280., 3041536., 3065600., 3358832., 3385712.,
      3440264., 3467360., 2921664., 2945408., 2993536., 3017472., 2492288.,
      2512848., 2554600., 2575328., 2115184., 2132768., 2168448., 2186176.,
      1900280., 1915820., 1947398., 1963064., 2203885., 2221906., 2258600.,
      2276768., 2516816., 2537360., 2579384., 2600096., 2826361., 2849470.,
      2896782., 2920080., 2462272., 2482640., 2524328., 2544864., 2104977.,
      2122562., 2158668., 2176400., 1789716., 1804732., 1835554., 1850696.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x9x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      754032.,  761592.,  771780.,  779376.,  759144.,  766776.,  777036.,
      784704.,  764256.,  771960.,  782292.,  790032.,  769368.,  777144.,
      787548.,  795360.,  774480.,  782328.,  792804.,  800688.,  779592.,
      787512.,  798060.,  806016.,  784704.,  792696.,  803316.,  811344.,
      800040.,  808248.,  819084.,  827328.,  805152.,  813432.,  824340.,
      832656.,  810264.,  818616.,  829596.,  837984.,  815376.,  823800.,
      834852.,  843312.,  820488.,  828984.,  840108.,  848640.,  825600.,
      834168.,  845364.,  853968.,  830712.,  839352.,  850620.,  859296.,
      846048.,  854904.,  866388.,  875280.,  851160.,  860088.,  871644.,
      880608.,  856272.,  865272.,  876900.,  885936.,  861384.,  870456.,
      882156.,  891264.,  866496.,  875640.,  887412.,  896592.,  871608.,
      880824.,  892668.,  901920.,  876720.,  886008.,  897924.,  907248.,
      892056.,  901560.,  913692.,  923232.,  897168.,  906744.,  918948.,
      928560.,  902280.,  911928.,  924204.,  933888.,  907392.,  917112.,
      929460.,  939216.,  912504.,  922296.,  934716.,  944544.,  917616.,
      927480.,  939972.,  949872.,  922728.,  932664.,  945228.,  955200.,
      938064.,  948216.,  960996.,  971184.,  943176.,  953400.,  966252.,
      976512.,  948288.,  958584.,  971508.,  981840.,  953400.,  963768.,
      976764.,  987168.,  958512.,  968952.,  982020.,  992496.,  963624.,
      974136.,  987276.,  997824.,  968736.,  979320.,  992532.,  1003152.,
      984072.,  994872.,  1008300., 1019136., 989184.,  1000056., 1013556.,
      1024464., 994296.,  1005240., 1018812., 1029792., 999408.,  1010424.,
      1024068., 1035120., 1004520., 1015608., 1029324., 1040448., 1009632.,
      1020792., 1034580., 1045776., 1014744., 1025976., 1039836., 1051104.,
      1030080., 1041528., 1055604., 1067088., 1035192., 1046712., 1060860.,
      1072416., 1040304., 1051896., 1066116., 1077744., 1045416., 1057080.,
      1071372., 1083072., 1050528., 1062264., 1076628., 1088400., 1055640.,
      1067448., 1081884., 1093728., 1060752., 1072632., 1087140., 1099056.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1968920., 1984312., 1999704., 2015096., 2046646., 2062164., 2077682.,
      2093200., 2272091., 2290110., 2308129., 2326148., 2362942., 2381108.,
      2399274., 2417440., 2612272., 2632960., 2653648., 2674336., 2716504.,
      2737360., 2758216., 2779072., 2957383., 2980782., 3004181., 3027580.,
      3075252., 3098840., 3122428., 3146016., 2596544., 2617312., 2638080.,
      2658848., 2701288., 2722224., 2743160., 2764096., 2218647., 2236742.,
      2254837., 2272932., 2310010., 2328252., 2346494., 2364736., 1905180.,
      1920816., 1936452., 1952088., 1983930., 1999692., 2015454., 2031216.,
      2174480., 2192416., 2210352., 2228288., 2264992., 2283072., 2301152.,
      2319232., 2518640., 2539648., 2560656., 2581664., 2624408., 2645584.,
      2666760., 2687936., 2901824., 2925952., 2950080., 2974208., 3023104.,
      3047424., 3071744., 3096064., 3291904., 3319200., 3346496., 3373792.,
      3428952., 3456464., 3483976., 3511488., 2910656., 2934912., 2959168.,
      2983424., 3032448., 3056896., 3081344., 3105792., 2510480., 2531648.,
      2552816., 2573984., 2616760., 2638096., 2659432., 2680768., 2154480.,
      2172768., 2191056., 2209344., 2246016., 2264448., 2282880., 2301312.,
      2354140., 2374432., 2394724., 2415016., 2455390., 2475844., 2496298.,
      2516752., 2744663., 2768270., 2791877., 2815484., 2862532., 2886328.,
      2910124., 2933920., 3177920., 3204896., 3231872., 3258848., 3312664.,
      3339856., 3367048., 3394240., 3621735., 3652134., 3682533., 3712932.,
      3773610., 3804252., 3834894., 3865536., 3225392., 3252288., 3279184.,
      3306080., 3359880., 3386992., 3414104., 3441216., 2809115., 2832454.,
      2855793., 2879132., 2925960., 2949488., 2973016., 2996544., 2417624.,
      2437608., 2457592., 2477576., 2517594., 2537740., 2557886., 2578032.,
      2803804., 2825752., 2847700., 2869648., 2914000., 2936128., 2958256.,
      2980384., 3320256., 3345816., 3371376., 3396936., 3448690., 3474460.,
      3500230., 3526000., 3882800., 3912032., 3941264., 3970496., 4029728.,
      4059200., 4088672., 4118144., 4459212., 4492176., 4525140., 4558104.,
      4624890., 4658124., 4691358., 4724592., 3905424., 3934624., 3963824.,
      3993024., 4052352., 4081792., 4111232., 4140672., 3329000., 3354376.,
      3379752., 3405128., 3456922., 3482508., 3508094., 3533680., 2821812.,
      2843560., 2865308., 2887056., 2931496., 2953424., 2975352., 2997280.,
      2473488., 2493624., 2513760., 2533896., 2573970., 2594268., 2614566.,
      2634864., 2854681., 2878106., 2901531., 2924956., 2971782., 2995396.,
      3019010., 3042624., 3222704., 3249472., 3276240., 3303008., 3356680.,
      3383664., 3410648., 3437632., 3610917., 3641082., 3671247., 3701412.,
      3762024., 3792432., 3822840., 3853248., 3202080., 3228768., 3255456.,
      3282144., 3336056., 3362960., 3389864., 3416768., 2764189., 2787346.,
      2810503., 2833660., 2880778., 2904124., 2927470., 2950816., 2370636.,
      2390464., 2410292., 2430120., 2470606., 2490596., 2510586., 2530576.,
      2128720., 2146720., 2164720., 2182720., 2219232., 2237376., 2255520.,
      2273664., 2488720., 2509632., 2530544., 2551456., 2593976., 2615056.,
      2636136., 2657216., 2842176., 2866048., 2889920., 2913792., 2962432.,
      2986496., 3010560., 3034624., 3222496., 3249376., 3276256., 3303136.,
      3358008., 3385104., 3412200., 3439296., 2905280., 2929024., 2952768.,
      2976512., 3025280., 3049216., 3073152., 3097088., 2551728., 2572288.,
      2592848., 2613408., 2655960., 2676688., 2697416., 2718144., 2216752.,
      2234336., 2251920., 2269504., 2305984., 2323712., 2341440., 2359168.,
      1967932., 1983472., 1999012., 2014552., 2046170., 2061836., 2077502.,
      2093168., 2330997., 2349018., 2367039., 2385060., 2421848., 2440016.,
      2458184., 2476352., 2694496., 2715040., 2735584., 2756128., 2798216.,
      2818928., 2839640., 2860352., 3045549., 3068658., 3091767., 3114876.,
      3162138., 3185436., 3208734., 3232032., 2770160., 2790528., 2810896.,
      2831264., 2873112., 2893648., 2914184., 2934720., 2450801., 2468386.,
      2485971., 2503556., 2539860., 2557592., 2575324., 2593056., 2155392.,
      2170408., 2185424., 2200440., 2231582., 2246724., 2261866., 2277008.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x9x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1500504., 1508064., 1515624., 1523184., 1535964., 1543560., 1551156.,
      1558752., 1510656., 1518288., 1525920., 1533552., 1546404., 1554072.,
      1561740., 1569408., 1520808., 1528512., 1536216., 1543920., 1556844.,
      1564584., 1572324., 1580064., 1530960., 1538736., 1546512., 1554288.,
      1567284., 1575096., 1582908., 1590720., 1541112., 1548960., 1556808.,
      1564656., 1577724., 1585608., 1593492., 1601376., 1551264., 1559184.,
      1567104., 1575024., 1588164., 1596120., 1604076., 1612032., 1561416.,
      1569408., 1577400., 1585392., 1598604., 1606632., 1614660., 1622688.,
      1591872., 1600080., 1608288., 1616496., 1629924., 1638168., 1646412.,
      1654656., 1602024., 1610304., 1618584., 1626864., 1640364., 1648680.,
      1656996., 1665312., 1612176., 1620528., 1628880., 1637232., 1650804.,
      1659192., 1667580., 1675968., 1622328., 1630752., 1639176., 1647600.,
      1661244., 1669704., 1678164., 1686624., 1632480., 1640976., 1649472.,
      1657968., 1671684., 1680216., 1688748., 1697280., 1642632., 1651200.,
      1659768., 1668336., 1682124., 1690728., 1699332., 1707936., 1652784.,
      1661424., 1670064., 1678704., 1692564., 1701240., 1709916., 1718592.,
      1683240., 1692096., 1700952., 1709808., 1723884., 1732776., 1741668.,
      1750560., 1693392., 1702320., 1711248., 1720176., 1734324., 1743288.,
      1752252., 1761216., 1703544., 1712544., 1721544., 1730544., 1744764.,
      1753800., 1762836., 1771872., 1713696., 1722768., 1731840., 1740912.,
      1755204., 1764312., 1773420., 1782528., 1723848., 1732992., 1742136.,
      1751280., 1765644., 1774824., 1784004., 1793184., 1734000., 1743216.,
      1752432., 1761648., 1776084., 1785336., 1794588., 1803840., 1744152.,
      1753440., 1762728., 1772016., 1786524., 1795848., 1805172., 1814496.,
      1774608., 1784112., 1793616., 1803120., 1817844., 1827384., 1836924.,
      1846464., 1784760., 1794336., 1803912., 1813488., 1828284., 1837896.,
      1847508., 1857120., 1794912., 1804560., 1814208., 1823856., 1838724.,
      1848408., 1858092., 1867776., 1805064., 1814784., 1824504., 1834224.,
      1849164., 1858920., 1868676., 1878432., 1815216., 1825008., 1834800.,
      1844592., 1859604., 1869432., 1879260., 1889088., 1825368., 1835232.,
      1845096., 1854960., 1870044., 1879944., 1889844., 1899744., 1835520.,
      1845456., 1855392., 1865328., 1880484., 1890456., 1900428., 1910400.,
      1865976., 1876128., 1886280., 1896432., 1911804., 1921992., 1932180.,
      1942368., 1876128., 1886352., 1896576., 1906800., 1922244., 1932504.,
      1942764., 1953024., 1886280., 1896576., 1906872., 1917168., 1932684.,
      1943016., 1953348., 1963680., 1896432., 1906800., 1917168., 1927536.,
      1943124., 1953528., 1963932., 1974336., 1906584., 1917024., 1927464.,
      1937904., 1953564., 1964040., 1974516., 1984992., 1916736., 1927248.,
      1937760., 1948272., 1964004., 1974552., 1985100., 1995648., 1926888.,
      1937472., 1948056., 1958640., 1974444., 1985064., 1995684., 2006304.,
      1957344., 1968144., 1978944., 1989744., 2005764., 2016600., 2027436.,
      2038272., 1967496., 1978368., 1989240., 2000112., 2016204., 2027112.,
      2038020., 2048928., 1977648., 1988592., 1999536., 2010480., 2026644.,
      2037624., 2048604., 2059584., 1987800., 1998816., 2009832., 2020848.,
      2037084., 2048136., 2059188., 2070240., 1997952., 2009040., 2020128.,
      2031216., 2047524., 2058648., 2069772., 2080896., 2008104., 2019264.,
      2030424., 2041584., 2057964., 2069160., 2080356., 2091552., 2018256.,
      2029488., 2040720., 2051952., 2068404., 2079672., 2090940., 2102208.,
      2048712., 2060160., 2071608., 2083056., 2099724., 2111208., 2122692.,
      2134176., 2058864., 2070384., 2081904., 2093424., 2110164., 2121720.,
      2133276., 2144832., 2069016., 2080608., 2092200., 2103792., 2120604.,
      2132232., 2143860., 2155488., 2079168., 2090832., 2102496., 2114160.,
      2131044., 2142744., 2154444., 2166144., 2089320., 2101056., 2112792.,
      2124528., 2141484., 2153256., 2165028., 2176800., 2099472., 2111280.,
      2123088., 2134896., 2151924., 2163768., 2175612., 2187456., 2109624.,
      2121504., 2133384., 2145264., 2162364., 2174280., 2186196., 2198112.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1614438., 1645944., 1677702., 1709712., 1888495., 1925252., 1962303.,
      1999648., 2200200., 2242464., 2285064., 2328000., 2551265., 2599292.,
      2647697., 2696480., 2258696., 2301216., 2344072., 2387264., 1968655.,
      2005668., 2042975., 2080576., 1706310., 1738072., 1770086., 1802352.,
      1964112., 1999936., 2036048., 2072448., 2307720., 2349472., 2391560.,
      2433984., 2698176., 2746112., 2794432., 2843136., 3137144., 3191520.,
      3246328., 3301568., 2783168., 2831104., 2879424., 2928128., 2449544.,
      2491296., 2533384., 2575808., 2134608., 2170432., 2206544., 2242944.,
      2422746., 2462120., 2501818., 2541840., 2903393., 2949372., 2995729.,
      3042464., 3441272., 3494112., 3547384., 3601088., 4037999., 4097956.,
      4158399., 4219328., 3628024., 3680864., 3734136., 3787840., 3230209.,
      3276188., 3322545., 3369280., 2842938., 2882312., 2922010., 2962032.,
      3337956., 3381392., 3425188., 3469344., 4004906., 4055624., 4106762.,
      4158320., 4738608., 4796864., 4855600., 4914816., 5540630., 5606680.,
      5673270., 5740400., 4738608., 4796864., 4855600., 4914816., 4004906.,
      4055624., 4106762., 4158320., 3337956., 3381392., 3425188., 3469344.,
      2842938., 2882312., 2922010., 2962032., 3230209., 3276188., 3322545.,
      3369280., 3628024., 3680864., 3734136., 3787840., 4037999., 4097956.,
      4158399., 4219328., 3441272., 3494112., 3547384., 3601088., 2903393.,
      2949372., 2995729., 3042464., 2422746., 2462120., 2501818., 2541840.,
      2134608., 2170432., 2206544., 2242944., 2449544., 2491296., 2533384.,
      2575808., 2783168., 2831104., 2879424., 2928128., 3137144., 3191520.,
      3246328., 3301568., 2698176., 2746112., 2794432., 2843136., 2307720.,
      2349472., 2391560., 2433984., 1964112., 1999936., 2036048., 2072448.,
      1706310., 1738072., 1770086., 1802352., 1968655., 2005668., 2042975.,
      2080576., 2258696., 2301216., 2344072., 2387264., 2551265., 2599292.,
      2647697., 2696480., 2200200., 2242464., 2285064., 2328000., 1888495.,
      1925252., 1962303., 1999648., 1614438., 1645944., 1677702., 1709712.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x9x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1505508., 1523184., 1540932., 1558752., 1515732., 1533552., 1551444.,
      1569408., 1525956., 1543920., 1561956., 1580064., 1536180., 1554288.,
      1572468., 1590720., 1546404., 1564656., 1582980., 1601376., 1556628.,
      1575024., 1593492., 1612032., 1566852., 1585392., 1604004., 1622688.,
      1597524., 1616496., 1635540., 1654656., 1607748., 1626864., 1646052.,
      1665312., 1617972., 1637232., 1656564., 1675968., 1628196., 1647600.,
      1667076., 1686624., 1638420., 1657968., 1677588., 1697280., 1648644.,
      1668336., 1688100., 1707936., 1658868., 1678704., 1698612., 1718592.,
      1689540., 1709808., 1730148., 1750560., 1699764., 1720176., 1740660.,
      1761216., 1709988., 1730544., 1751172., 1771872., 1720212., 1740912.,
      1761684., 1782528., 1730436., 1751280., 1772196., 1793184., 1740660.,
      1761648., 1782708., 1803840., 1750884., 1772016., 1793220., 1814496.,
      1781556., 1803120., 1824756., 1846464., 1791780., 1813488., 1835268.,
      1857120., 1802004., 1823856., 1845780., 1867776., 1812228., 1834224.,
      1856292., 1878432., 1822452., 1844592., 1866804., 1889088., 1832676.,
      1854960., 1877316., 1899744., 1842900., 1865328., 1887828., 1910400.,
      1873572., 1896432., 1919364., 1942368., 1883796., 1906800., 1929876.,
      1953024., 1894020., 1917168., 1940388., 1963680., 1904244., 1927536.,
      1950900., 1974336., 1914468., 1937904., 1961412., 1984992., 1924692.,
      1948272., 1971924., 1995648., 1934916., 1958640., 1982436., 2006304.,
      1965588., 1989744., 2013972., 2038272., 1975812., 2000112., 2024484.,
      2048928., 1986036., 2010480., 2034996., 2059584., 1996260., 2020848.,
      2045508., 2070240., 2006484., 2031216., 2056020., 2080896., 2016708.,
      2041584., 2066532., 2091552., 2026932., 2051952., 2077044., 2102208.,
      2057604., 2083056., 2108580., 2134176., 2067828., 2093424., 2119092.,
      2144832., 2078052., 2103792., 2129604., 2155488., 2088276., 2114160.,
      2140116., 2166144., 2098500., 2124528., 2150628., 2176800., 2108724.,
      2134896., 2161140., 2187456., 2118948., 2145264., 2171652., 2198112.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2094602., 2110156., 2141616., 2157296., 2189134., 2204940., 2237156.,
      2253088., 2388651., 2406878., 2443586., 2461960., 2499109., 2517630.,
      2555220., 2573888., 2711576., 2732560., 2774688., 2795840., 2838472.,
      2859792., 2902928., 2924416., 3064753., 3088578., 3136298., 3160312.,
      3208599., 3232802., 3281656., 3306048., 2645112., 2666256., 2708736.,
      2730048., 2773032., 2794512., 2838000., 2859648., 2236499., 2254878.,
      2291946., 2310472., 2347981., 2366654., 2404604., 2423424., 1886946.,
      1902732., 1934472., 1950384., 1982502., 1998540., 2031036., 2047200.,
      2043664., 2061472., 2097760., 2115712., 2152432., 2170528., 2207680.,
      2225920., 2351256., 2372112., 2414368., 2435392., 2478152., 2499344.,
      2542608., 2563968., 2695872., 2719872., 2768256., 2792448., 2841408.,
      2865792., 2915328., 2939904., 3078792., 3106032., 3160704., 3188160.,
      3243480., 3271152., 3327120., 3355008., 2674368., 2698368., 2746752.,
      2770944., 2819904., 2844288., 2893824., 2918400., 2308184., 2329104.,
      2371296., 2392384., 2435080., 2456336., 2499536., 2520960., 1974864.,
      1992864., 2028960., 2047104., 2083632., 2101920., 2138880., 2157312.,
      2155470., 2175412., 2215112., 2235216., 2275402., 2295668., 2336340.,
      2356768., 2549009., 2572226., 2618506., 2641912., 2688759., 2712354.,
      2759768., 2783552., 2989064., 3015664., 3068672., 3095488., 3149144.,
      3176176., 3230480., 3257728., 3476819., 3506910., 3566794., 3597128.,
      3657741., 3688318., 3749660., 3780480., 3104424., 3130864., 3183776.,
      3210432., 3263992., 3290864., 3345072., 3372160., 2745705., 2768642.,
      2814690., 2837816., 2884431., 2907746., 2954928., 2978432., 2395382.,
      2414964., 2454256., 2474000., 2513778., 2533684., 2573948., 2594016.,
      2872836., 2894536., 2938280., 2960160., 3004444., 3026504., 3071328.,
      3093568., 3456118., 3481428., 3532512., 3558032., 3609746., 3635476.,
      3687820., 3713760., 4094704., 4123744., 4182304., 4211584., 4270864.,
      4300384., 4360384., 4390144., 4789682., 4822572., 4888744., 4921904.,
      4988886., 5022316., 5090108., 5123808., 4111152., 4140128., 4198752.,
      4227968., 4287312., 4316768., 4376832., 4406528., 3485926., 3511124.,
      3562320., 3587728., 3639554., 3665172., 3717628., 3743456., 2908820.,
      2930376., 2974264., 2996000., 3040428., 3062344., 3107312., 3129408.,
      2439366., 2458996., 2498240., 2518032., 2557762., 2577716., 2617932.,
      2638048., 2787517., 2810370., 2856246., 2879288., 2925731., 2948962.,
      2995972., 3019392., 3135912., 3162096., 3214752., 3241152., 3294456.,
      3321072., 3375024., 3401856., 3485735., 3515358., 3574942., 3604808.,
      3665121., 3695230., 3756272., 3786624., 3049288., 3075312., 3128128.,
      3154368., 3207832., 3234288., 3288400., 3315072., 2636949., 2659522.,
      2705678., 2728440., 2775163., 2798114., 2845404., 2868544., 2243438.,
      2262708., 2302312., 2321744., 2361834., 2381428., 2422004., 2441760.,
      2042256., 2059936., 2095840., 2113664., 2150000., 2167968., 2204736.,
      2222848., 2398040., 2418704., 2460640., 2481472., 2523912., 2544912.,
      2587856., 2609024., 2763200., 2786944., 2835072., 2859008., 2907712.,
      2931840., 2981120., 3005440., 3139016., 3165936., 3220416., 3247552.,
      3302680., 3330032., 3385808., 3413376., 2844352., 2868096., 2916480.,
      2940416., 2989376., 3013504., 3063040., 3087360., 2542872., 2563600.,
      2605984., 2626880., 2669768., 2690832., 2734224., 2755456., 2229200.,
      2247072., 2283552., 2301568., 2338480., 2356640., 2393984., 2412288.,
      1941154., 1957004., 1988680., 2004656., 2036710., 2052812., 2085244.,
      2101472., 2310119., 2328606., 2365566., 2384200., 2421601., 2440382.,
      2478224., 2497152., 2698296., 2719504., 2761920., 2783296., 2826216.,
      2847760., 2891184., 2912896., 3080181., 3104194., 3151982., 3176184.,
      3224539., 3248930., 3297852., 3322432., 2819224., 2840336., 2882592.,
      2903872., 2946632., 2968080., 3011344., 3032960., 2521871., 2540254.,
      2577062., 2595592., 2632841., 2651518., 2689208., 2708032., 2245370.,
      2261196., 2292896., 2308848., 2340926., 2357004., 2389460., 2405664.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x9x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2995932., 3011016., 3031248., 3046368., 3066708., 3081864., 3102312.,
      3117504., 3016236., 3031464., 3051840., 3067104., 3087588., 3102888.,
      3123480., 3138816., 3036540., 3051912., 3072432., 3087840., 3108468.,
      3123912., 3144648., 3160128., 3056844., 3072360., 3093024., 3108576.,
      3129348., 3144936., 3165816., 3181440., 3077148., 3092808., 3113616.,
      3129312., 3150228., 3165960., 3186984., 3202752., 3097452., 3113256.,
      3134208., 3150048., 3171108., 3186984., 3208152., 3224064., 3117756.,
      3133704., 3154800., 3170784., 3191988., 3208008., 3229320., 3245376.,
      3178668., 3195048., 3216576., 3232992., 3254628., 3271080., 3292824.,
      3309312., 3198972., 3215496., 3237168., 3253728., 3275508., 3292104.,
      3313992., 3330624., 3219276., 3235944., 3257760., 3274464., 3296388.,
      3313128., 3335160., 3351936., 3239580., 3256392., 3278352., 3295200.,
      3317268., 3334152., 3356328., 3373248., 3259884., 3276840., 3298944.,
      3315936., 3338148., 3355176., 3377496., 3394560., 3280188., 3297288.,
      3319536., 3336672., 3359028., 3376200., 3398664., 3415872., 3300492.,
      3317736., 3340128., 3357408., 3379908., 3397224., 3419832., 3437184.,
      3361404., 3379080., 3401904., 3419616., 3442548., 3460296., 3483336.,
      3501120., 3381708., 3399528., 3422496., 3440352., 3463428., 3481320.,
      3504504., 3522432., 3402012., 3419976., 3443088., 3461088., 3484308.,
      3502344., 3525672., 3543744., 3422316., 3440424., 3463680., 3481824.,
      3505188., 3523368., 3546840., 3565056., 3442620., 3460872., 3484272.,
      3502560., 3526068., 3544392., 3568008., 3586368., 3462924., 3481320.,
      3504864., 3523296., 3546948., 3565416., 3589176., 3607680., 3483228.,
      3501768., 3525456., 3544032., 3567828., 3586440., 3610344., 3628992.,
      3544140., 3563112., 3587232., 3606240., 3630468., 3649512., 3673848.,
      3692928., 3564444., 3583560., 3607824., 3626976., 3651348., 3670536.,
      3695016., 3714240., 3584748., 3604008., 3628416., 3647712., 3672228.,
      3691560., 3716184., 3735552., 3605052., 3624456., 3649008., 3668448.,
      3693108., 3712584., 3737352., 3756864., 3625356., 3644904., 3669600.,
      3689184., 3713988., 3733608., 3758520., 3778176., 3645660., 3665352.,
      3690192., 3709920., 3734868., 3754632., 3779688., 3799488., 3665964.,
      3685800., 3710784., 3730656., 3755748., 3775656., 3800856., 3820800.,
      3726876., 3747144., 3772560., 3792864., 3818388., 3838728., 3864360.,
      3884736., 3747180., 3767592., 3793152., 3813600., 3839268., 3859752.,
      3885528., 3906048., 3767484., 3788040., 3813744., 3834336., 3860148.,
      3880776., 3906696., 3927360., 3787788., 3808488., 3834336., 3855072.,
      3881028., 3901800., 3927864., 3948672., 3808092., 3828936., 3854928.,
      3875808., 3901908., 3922824., 3949032., 3969984., 3828396., 3849384.,
      3875520., 3896544., 3922788., 3943848., 3970200., 3991296., 3848700.,
      3869832., 3896112., 3917280., 3943668., 3964872., 3991368., 4012608.,
      3909612., 3931176., 3957888., 3979488., 4006308., 4027944., 4054872.,
      4076544., 3929916., 3951624., 3978480., 4000224., 4027188., 4048968.,
      4076040., 4097856., 3950220., 3972072., 3999072., 4020960., 4048068.,
      4069992., 4097208., 4119168., 3970524., 3992520., 4019664., 4041696.,
      4068948., 4091016., 4118376., 4140480., 3990828., 4012968., 4040256.,
      4062432., 4089828., 4112040., 4139544., 4161792., 4011132., 4033416.,
      4060848., 4083168., 4110708., 4133064., 4160712., 4183104., 4031436.,
      4053864., 4081440., 4103904., 4131588., 4154088., 4181880., 4204416.,
      4092348., 4115208., 4143216., 4166112., 4194228., 4217160., 4245384.,
      4268352., 4112652., 4135656., 4163808., 4186848., 4215108., 4238184.,
      4266552., 4289664., 4132956., 4156104., 4184400., 4207584., 4235988.,
      4259208., 4287720., 4310976., 4153260., 4176552., 4204992., 4228320.,
      4256868., 4280232., 4308888., 4332288., 4173564., 4197000., 4225584.,
      4249056., 4277748., 4301256., 4330056., 4353600., 4193868., 4217448.,
      4246176., 4269792., 4298628., 4322280., 4351224., 4374912., 4214172.,
      4237896., 4266768., 4290528., 4319508., 4343304., 4372392., 4396224.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1944914., 1960468., 1976022., 1991576., 2022944., 2038624., 2054304.,
      2069984., 2101982., 2117788., 2133594., 2149400., 2182028., 2197960.,
      2213892., 2229824., 2193955., 2212182., 2230409., 2248636., 2285246.,
      2303620., 2321994., 2340368., 2377713., 2396234., 2414755., 2433276.,
      2471356., 2490024., 2508692., 2527360., 2454328., 2475312., 2496296.,
      2517280., 2559136., 2580288., 2601440., 2622592., 2665288., 2686608.,
      2707928., 2729248., 2772784., 2794272., 2815760., 2837248., 2780241.,
      2804066., 2827891., 2851716., 2899078., 2923092., 2947106., 2971120.,
      3019427., 3043630., 3067833., 3092036., 3141288., 3165680., 3190072.,
      3214464., 2411096., 2432240., 2453384., 2474528., 2516672., 2537984.,
      2559296., 2580608., 2623592., 2645072., 2666552., 2688032., 2731856.,
      2753504., 2775152., 2796800., 2025179., 2043558., 2061937., 2080316.,
      2116982., 2135508., 2154034., 2172560., 2209961., 2228634., 2247307.,
      2265980., 2304116., 2322936., 2341756., 2360576., 1709338., 1725124.,
      1740910., 1756696., 1788136., 1804048., 1819960., 1835872., 1867942.,
      1883980., 1900018., 1916056., 1948756., 1964920., 1981084., 1997248.,
      2216848., 2234656., 2252464., 2270272., 2306208., 2324160., 2342112.,
      2360064., 2396720., 2414816., 2432912., 2451008., 2488384., 2506624.,
      2524864., 2543104., 2585528., 2606384., 2627240., 2648096., 2690080.,
      2711104., 2732128., 2753152., 2795976., 2817168., 2838360., 2859552.,
      2903216., 2924576., 2945936., 2967296., 2971584., 2995584., 3019584.,
      3043584., 3091584., 3115776., 3139968., 3164160., 3213120., 3237504.,
      3261888., 3286272., 3336192., 3360768., 3385344., 3409920., 3438248.,
      3465488., 3492728., 3519968., 3574208., 3601664., 3629120., 3656576.,
      3711896., 3739568., 3767240., 3794912., 3851312., 3879200., 3907088.,
      3934976., 3092416., 3116416., 3140416., 3164416., 3212416., 3236608.,
      3260800., 3284992., 3333952., 3358336., 3382720., 3407104., 3457024.,
      3481600., 3506176., 3530752., 2720504., 2741424., 2762344., 2783264.,
      2825056., 2846144., 2867232., 2888320., 2930952., 2952208., 2973464.,
      2994720., 3038192., 3059616., 3081040., 3102464., 2312016., 2330016.,
      2348016., 2366016., 2401888., 2420032., 2438176., 2456320., 2492912.,
      2511200., 2529488., 2547776., 2585088., 2603520., 2621952., 2640384.,
      2214582., 2234524., 2254466., 2274408., 2314504., 2334608., 2354712.,
      2374816., 2415722., 2435988., 2456254., 2476520., 2518236., 2538664.,
      2559092., 2579520., 2598001., 2621218., 2644435., 2667652., 2714534.,
      2737940., 2761346., 2784752., 2832579., 2856174., 2879769., 2903364.,
      2952136., 2975920., 2999704., 3023488., 3007528., 3034128., 3060728.,
      3087328., 3140928., 3167744., 3194560., 3221376., 3276056., 3303088.,
      3330120., 3357152., 3412912., 3440160., 3467408., 3494656., 3449883.,
      3479974., 3510065., 3540156., 3600662., 3630996., 3661330., 3691664.,
      3753385., 3783962., 3814539., 3845116., 3908052., 3938872., 3969692.,
      4000512., 3021320., 3047760., 3074200., 3100640., 3154208., 3180864.,
      3207520., 3234176., 3288824., 3315696., 3342568., 3369440., 3425168.,
      3452256., 3479344., 3506432., 2649657., 2672594., 2695531., 2718468.,
      2765166., 2788292., 2811418., 2834544., 2882187., 2905502., 2928817.,
      2952132., 3000720., 3024224., 3047728., 3071232., 2324334., 2343916.,
      2363498., 2383080., 2422976., 2442720., 2462464., 2482208., 2522914.,
      2542820., 2562726., 2582632., 2624148., 2644216., 2664284., 2684352.,
      2536260., 2557960., 2579660., 2601360., 2645464., 2667344., 2689224.,
      2711104., 2756108., 2778168., 2800228., 2822288., 2868192., 2890432.,
      2912672., 2934912., 3098638., 3123948., 3149258., 3174568., 3226128.,
      3251648., 3277168., 3302688., 3355298., 3381028., 3406758., 3432488.,
      3486148., 3512088., 3538028., 3563968., 3693424., 3722464., 3751504.,
      3780544., 3839456., 3868736., 3898016., 3927296., 3987408., 4016928.,
      4046448., 4075968., 4137280., 4167040., 4196800., 4226560., 4336362.,
      4369252., 4402142., 4435032., 4501448., 4534608., 4567768., 4600928.,
      4668694., 4702124., 4735554., 4768984., 4838100., 4871800., 4905500.,
      4939200., 3725104., 3754080., 3783056., 3812032., 3870880., 3900096.,
      3929312., 3958528., 4018576., 4048032., 4077488., 4106944., 4168192.,
      4197888., 4227584., 4257280., 3185502., 3210700., 3235898., 3261096.,
      3312480., 3337888., 3363296., 3388704., 3441138., 3466756., 3492374.,
      3517992., 3571476., 3597304., 3623132., 3648960., 2707188., 2728744.,
      2750300., 2771856., 2815880., 2837616., 2859352., 2881088., 2926012.,
      2947928., 2969844., 2991760., 3037584., 3059680., 3081776., 3103872.,
      2285278., 2304908., 2324538., 2344168., 2383920., 2403712., 2423504.,
      2443296., 2483858., 2503812., 2523766., 2543720., 2585092., 2605208.,
      2625324., 2645440., 2679093., 2701946., 2724799., 2747652., 2794090.,
      2817132., 2840174., 2863216., 2910599., 2933830., 2957061., 2980292.,
      3028620., 3052040., 3075460., 3098880., 3052552., 3078736., 3104920.,
      3131104., 3184160., 3210560., 3236960., 3263360., 3317496., 3344112.,
      3370728., 3397344., 3452560., 3479392., 3506224., 3533056., 3430807.,
      3460430., 3490053., 3519676., 3579538., 3609404., 3639270., 3669136.,
      3730213., 3760322., 3790431., 3820540., 3882832., 3913184., 3943536.,
      3973888., 3084776., 3110800., 3136824., 3162848., 3215872., 3242112.,
      3268352., 3294592., 3348696., 3375152., 3401608., 3428064., 3483248.,
      3509920., 3536592., 3563264., 2749949., 2772522., 2795095., 2817668.,
      2863922., 2886684., 2909446., 2932208., 2979407., 3002358., 3025309.,
      3048260., 3096404., 3119544., 3142684., 3165824., 2415766., 2435036.,
      2454306., 2473576., 2513128., 2532560., 2551992., 2571424., 2611786.,
      2631380., 2650974., 2670568., 2711740., 2731496., 2751252., 2771008.,
      2233872., 2251552., 2269232., 2286912., 2322464., 2340288., 2358112.,
      2375936., 2412208., 2430176., 2448144., 2466112., 2503104., 2521216.,
      2539328., 2557440., 2736632., 2757296., 2777960., 2798624., 2840160.,
      2860992., 2881824., 2902656., 2945032., 2966032., 2987032., 3008032.,
      3051248., 3072416., 3093584., 3114752., 3032512., 3056256., 3080000.,
      3103744., 3151232., 3175168., 3199104., 3223040., 3271488., 3295616.,
      3319744., 3343872., 3393280., 3417600., 3441920., 3466240., 3352680.,
      3379600., 3406520., 3433440., 3487104., 3514240., 3541376., 3568512.,
      3623256., 3650608., 3677960., 3705312., 3761136., 3788704., 3816272.,
      3843840., 2910656., 2934400., 2958144., 2981888., 3029376., 3053312.,
      3077248., 3101184., 3149632., 3173760., 3197888., 3222016., 3271424.,
      3295744., 3320064., 3344384., 2518584., 2539312., 2560040., 2580768.,
      2622368., 2643264., 2664160., 2685056., 2727496., 2748560., 2769624.,
      2790688., 2833968., 2855200., 2876432., 2897664., 2130640., 2148512.,
      2166384., 2184256., 2220000., 2238016., 2256032., 2274048., 2310512.,
      2328672., 2346832., 2364992., 2402176., 2420480., 2438784., 2457088.,
      1889626., 1905476., 1921326., 1937176., 1968680., 1984656., 2000632.,
      2016608., 2048742., 2064844., 2080946., 2097048., 2129812., 2146040.,
      2162268., 2178496., 2190231., 2208718., 2227205., 2245692., 2282546.,
      2301180., 2319814., 2338448., 2376037., 2394818., 2413599., 2432380.,
      2470704., 2489632., 2508560., 2527488., 2493080., 2514288., 2535496.,
      2556704., 2598912., 2620288., 2641664., 2663040., 2706088., 2727632.,
      2749176., 2770720., 2814608., 2836320., 2858032., 2879744., 2815261.,
      2839274., 2863287., 2887300., 2934866., 2959068., 2983270., 3007472.,
      3055983., 3080374., 3104765., 3129156., 3178612., 3203192., 3227772.,
      3252352., 2535352., 2556464., 2577576., 2598688., 2640672., 2661952.,
      2683232., 2704512., 2747336., 2768784., 2790232., 2811680., 2855344.,
      2876960., 2898576., 2920192., 2254415., 2272798., 2291181., 2309564.,
      2346218., 2364748., 2383278., 2401808., 2439197., 2457874., 2476551.,
      2495228., 2533352., 2552176., 2571000., 2589824., 1979938., 1995764.,
      2011590., 2027416., 2058992., 2074944., 2090896., 2106848., 2139054.,
      2155132., 2171210., 2187288., 2220124., 2236328., 2252532., 2268736.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x9x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5976780., 5991864., 6006948., 6022032., 6047376., 6062496., 6077616.,
      6092736., 6118260., 6133416., 6148572., 6163728., 6189432., 6204624.,
      6219816., 6235008., 6017244., 6032472., 6047700., 6062928., 6088416.,
      6103680., 6118944., 6134208., 6159876., 6175176., 6190476., 6205776.,
      6231624., 6246960., 6262296., 6277632., 6057708., 6073080., 6088452.,
      6103824., 6129456., 6144864., 6160272., 6175680., 6201492., 6216936.,
      6232380., 6247824., 6273816., 6289296., 6304776., 6320256., 6098172.,
      6113688., 6129204., 6144720., 6170496., 6186048., 6201600., 6217152.,
      6243108., 6258696., 6274284., 6289872., 6316008., 6331632., 6347256.,
      6362880., 6138636., 6154296., 6169956., 6185616., 6211536., 6227232.,
      6242928., 6258624., 6284724., 6300456., 6316188., 6331920., 6358200.,
      6373968., 6389736., 6405504., 6179100., 6194904., 6210708., 6226512.,
      6252576., 6268416., 6284256., 6300096., 6326340., 6342216., 6358092.,
      6373968., 6400392., 6416304., 6432216., 6448128., 6219564., 6235512.,
      6251460., 6267408., 6293616., 6309600., 6325584., 6341568., 6367956.,
      6383976., 6399996., 6416016., 6442584., 6458640., 6474696., 6490752.,
      6340956., 6357336., 6373716., 6390096., 6416736., 6433152., 6449568.,
      6465984., 6492804., 6509256., 6525708., 6542160., 6569160., 6585648.,
      6602136., 6618624., 6381420., 6397944., 6414468., 6430992., 6457776.,
      6474336., 6490896., 6507456., 6534420., 6551016., 6567612., 6584208.,
      6611352., 6627984., 6644616., 6661248., 6421884., 6438552., 6455220.,
      6471888., 6498816., 6515520., 6532224., 6548928., 6576036., 6592776.,
      6609516., 6626256., 6653544., 6670320., 6687096., 6703872., 6462348.,
      6479160., 6495972., 6512784., 6539856., 6556704., 6573552., 6590400.,
      6617652., 6634536., 6651420., 6668304., 6695736., 6712656., 6729576.,
      6746496., 6502812., 6519768., 6536724., 6553680., 6580896., 6597888.,
      6614880., 6631872., 6659268., 6676296., 6693324., 6710352., 6737928.,
      6754992., 6772056., 6789120., 6543276., 6560376., 6577476., 6594576.,
      6621936., 6639072., 6656208., 6673344., 6700884., 6718056., 6735228.,
      6752400., 6780120., 6797328., 6814536., 6831744., 6583740., 6600984.,
      6618228., 6635472., 6662976., 6680256., 6697536., 6714816., 6742500.,
      6759816., 6777132., 6794448., 6822312., 6839664., 6857016., 6874368.,
      6705132., 6722808., 6740484., 6758160., 6786096., 6803808., 6821520.,
      6839232., 6867348., 6885096., 6902844., 6920592., 6948888., 6966672.,
      6984456., 7002240., 6745596., 6763416., 6781236., 6799056., 6827136.,
      6844992., 6862848., 6880704., 6908964., 6926856., 6944748., 6962640.,
      6991080., 7009008., 7026936., 7044864., 6786060., 6804024., 6821988.,
      6839952., 6868176., 6886176., 6904176., 6922176., 6950580., 6968616.,
      6986652., 7004688., 7033272., 7051344., 7069416., 7087488., 6826524.,
      6844632., 6862740., 6880848., 6909216., 6927360., 6945504., 6963648.,
      6992196., 7010376., 7028556., 7046736., 7075464., 7093680., 7111896.,
      7130112., 6866988., 6885240., 6903492., 6921744., 6950256., 6968544.,
      6986832., 7005120., 7033812., 7052136., 7070460., 7088784., 7117656.,
      7136016., 7154376., 7172736., 6907452., 6925848., 6944244., 6962640.,
      6991296., 7009728., 7028160., 7046592., 7075428., 7093896., 7112364.,
      7130832., 7159848., 7178352., 7196856., 7215360., 6947916., 6966456.,
      6984996., 7003536., 7032336., 7050912., 7069488., 7088064., 7117044.,
      7135656., 7154268., 7172880., 7202040., 7220688., 7239336., 7257984.,
      7069308., 7088280., 7107252., 7126224., 7155456., 7174464., 7193472.,
      7212480., 7241892., 7260936., 7279980., 7299024., 7328616., 7347696.,
      7366776., 7385856., 7109772., 7128888., 7148004., 7167120., 7196496.,
      7215648., 7234800., 7253952., 7283508., 7302696., 7321884., 7341072.,
      7370808., 7390032., 7409256., 7428480., 7150236., 7169496., 7188756.,
      7208016., 7237536., 7256832., 7276128., 7295424., 7325124., 7344456.,
      7363788., 7383120., 7413000., 7432368., 7451736., 7471104., 7190700.,
      7210104., 7229508., 7248912., 7278576., 7298016., 7317456., 7336896.,
      7366740., 7386216., 7405692., 7425168., 7455192., 7474704., 7494216.,
      7513728., 7231164., 7250712., 7270260., 7289808., 7319616., 7339200.,
      7358784., 7378368., 7408356., 7427976., 7447596., 7467216., 7497384.,
      7517040., 7536696., 7556352., 7271628., 7291320., 7311012., 7330704.,
      7360656., 7380384., 7400112., 7419840., 7449972., 7469736., 7489500.,
      7509264., 7539576., 7559376., 7579176., 7598976., 7312092., 7331928.,
      7351764., 7371600., 7401696., 7421568., 7441440., 7461312., 7491588.,
      7511496., 7531404., 7551312., 7581768., 7601712., 7621656., 7641600.,
      7433484., 7453752., 7474020., 7494288., 7524816., 7545120., 7565424.,
      7585728., 7616436., 7636776., 7657116., 7677456., 7708344., 7728720.,
      7749096., 7769472., 7473948., 7494360., 7514772., 7535184., 7565856.,
      7586304., 7606752., 7627200., 7658052., 7678536., 7699020., 7719504.,
      7750536., 7771056., 7791576., 7812096., 7514412., 7534968., 7555524.,
      7576080., 7606896., 7627488., 7648080., 7668672., 7699668., 7720296.,
      7740924., 7761552., 7792728., 7813392., 7834056., 7854720., 7554876.,
      7575576., 7596276., 7616976., 7647936., 7668672., 7689408., 7710144.,
      7741284., 7762056., 7782828., 7803600., 7834920., 7855728., 7876536.,
      7897344., 7595340., 7616184., 7637028., 7657872., 7688976., 7709856.,
      7730736., 7751616., 7782900., 7803816., 7824732., 7845648., 7877112.,
      7898064., 7919016., 7939968., 7635804., 7656792., 7677780., 7698768.,
      7730016., 7751040., 7772064., 7793088., 7824516., 7845576., 7866636.,
      7887696., 7919304., 7940400., 7961496., 7982592., 7676268., 7697400.,
      7718532., 7739664., 7771056., 7792224., 7813392., 7834560., 7866132.,
      7887336., 7908540., 7929744., 7961496., 7982736., 8003976., 8025216.,
      7797660., 7819224., 7840788., 7862352., 7894176., 7915776., 7937376.,
      7958976., 7990980., 8012616., 8034252., 8055888., 8088072., 8109744.,
      8131416., 8153088., 7838124., 7859832., 7881540., 7903248., 7935216.,
      7956960., 7978704., 8000448., 8032596., 8054376., 8076156., 8097936.,
      8130264., 8152080., 8173896., 8195712., 7878588., 7900440., 7922292.,
      7944144., 7976256., 7998144., 8020032., 8041920., 8074212., 8096136.,
      8118060., 8139984., 8172456., 8194416., 8216376., 8238336., 7919052.,
      7941048., 7963044., 7985040., 8017296., 8039328., 8061360., 8083392.,
      8115828., 8137896., 8159964., 8182032., 8214648., 8236752., 8258856.,
      8280960., 7959516., 7981656., 8003796., 8025936., 8058336., 8080512.,
      8102688., 8124864., 8157444., 8179656., 8201868., 8224080., 8256840.,
      8279088., 8301336., 8323584., 7999980., 8022264., 8044548., 8066832.,
      8099376., 8121696., 8144016., 8166336., 8199060., 8221416., 8243772.,
      8266128., 8299032., 8321424., 8343816., 8366208., 8040444., 8062872.,
      8085300., 8107728., 8140416., 8162880., 8185344., 8207808., 8240676.,
      8263176., 8285676., 8308176., 8341224., 8363760., 8386296., 8408832.,
      8161836., 8184696., 8207556., 8230416., 8263536., 8286432., 8309328.,
      8332224., 8365524., 8388456., 8411388., 8434320., 8467800., 8490768.,
      8513736., 8536704., 8202300., 8225304., 8248308., 8271312., 8304576.,
      8327616., 8350656., 8373696., 8407140., 8430216., 8453292., 8476368.,
      8509992., 8533104., 8556216., 8579328., 8242764., 8265912., 8289060.,
      8312208., 8345616., 8368800., 8391984., 8415168., 8448756., 8471976.,
      8495196., 8518416., 8552184., 8575440., 8598696., 8621952., 8283228.,
      8306520., 8329812., 8353104., 8386656., 8409984., 8433312., 8456640.,
      8490372., 8513736., 8537100., 8560464., 8594376., 8617776., 8641176.,
      8664576., 8323692., 8347128., 8370564., 8394000., 8427696., 8451168.,
      8474640., 8498112., 8531988., 8555496., 8579004., 8602512., 8636568.,
      8660112., 8683656., 8707200., 8364156., 8387736., 8411316., 8434896.,
      8468736., 8492352., 8515968., 8539584., 8573604., 8597256., 8620908.,
      8644560., 8678760., 8702448., 8726136., 8749824., 8404620., 8428344.,
      8452068., 8475792., 8509776., 8533536., 8557296., 8581056., 8615220.,
      8639016., 8662812., 8686608., 8720952., 8744784., 8768616., 8792448.};
  const std::array<int, 4> in_shape = {{3, 10, 9, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4328954., 4950316., 5572350., 6195035., 5578020., 4960396., 4342184.,
      4991896., 5707424., 6423480., 7140040., 6427800., 5715104., 5001976.,
      5659668., 6469812., 7280280., 8091045., 7282710., 6474132., 5665338.,
      6330170., 7235080., 8140050., 9045050., 8140050., 7235080., 6330170.,
      5665338., 6474132., 7282710., 8091045., 7280280., 6469812., 5659668.,
      5001976., 5715104., 6427800., 7140040., 6423480., 5707424., 4991896.,
      4342184., 4960396., 5578020., 6195035., 5572350., 4950316., 4328954.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x10x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      191840., 193016., 194192., 195368., 196544., 197720., 198896.,
      203600., 204776., 205952., 207128., 208304., 209480., 210656.,
      215360., 216536., 217712., 218888., 220064., 221240., 222416.,
      227120., 228296., 229472., 230648., 231824., 233000., 234176.,
      238880., 240056., 241232., 242408., 243584., 244760., 245936.,
      250640., 251816., 252992., 254168., 255344., 256520., 257696.,
      262400., 263576., 264752., 265928., 267104., 268280., 269456.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4606722.,  4626420.,  5326356.,  5348952.,  6045265.,  6070780.,
      6763407.,  6791862.,  6152160.,  6177864.,  5542276.,  5565208.,
      4933797.,  4953936.,  5765112.,  5788464.,  6652064.,  6678848.,
      7538000.,  7568240.,  8422872.,  8456592.,  7647288.,  7677744.,
      6873376.,  6900544.,  6101184.,  6125040.,  6932952.,  6960168.,
      7988092.,  8019304.,  9041805.,  9077040.,  10094037., 10133322.,
      9152406.,  9187884.,  8212876.,  8244520.,  7275501.,  7303284.,
      8106042.,  8137332.,  9329640.,  9365520.,  10551280., 10591780.,
      11770902., 11816052., 10662114., 10702884., 9555976.,  9592336.,
      8452548.,  8484468.,  7704258.,  7733364.,  8873164.,  8906536.,
      10040075., 10077740., 11204937., 11246922., 10155804., 10193712.,
      9109340.,  9143144.,  8065599.,  8095272.,  7341464.,  7368176.,
      8461728.,  8492352.,  9580080.,  9614640.,  10696472., 10734992.,
      9701784.,  9736560.,  8709664.,  8740672.,  7720160.,  7747376.,
      7021860.,  7045968.,  8100132.,  8127768.,  9176695.,  9207880.,
      10251507., 10286262., 9305454.,  9336828.,  8361748.,  8389720.,
      7420431.,  7444980.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x10x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      378040., 383680., 380344., 386032., 382648., 388384., 384952., 390736.,
      387256., 393088., 389560., 395440., 391864., 397792., 401080., 407200.,
      403384., 409552., 405688., 411904., 407992., 414256., 410296., 416608.,
      412600., 418960., 414904., 421312., 424120., 430720., 426424., 433072.,
      428728., 435424., 431032., 437776., 433336., 440128., 435640., 442480.,
      437944., 444832., 447160., 454240., 449464., 456592., 451768., 458944.,
      454072., 461296., 456376., 463648., 458680., 466000., 460984., 468352.,
      470200., 477760., 472504., 480112., 474808., 482464., 477112., 484816.,
      479416., 487168., 481720., 489520., 484024., 491872., 493240., 501280.,
      495544., 503632., 497848., 505984., 500152., 508336., 502456., 510688.,
      504760., 513040., 507064., 515392., 516280., 524800., 518584., 527152.,
      520888., 529504., 523192., 531856., 525496., 534208., 527800., 536560.,
      530104., 538912.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3992850.,  4012548.,  4032246., 4051944., 4601828., 4624424.,  4647020.,
      4669616.,  5204215.,  5229730., 5255245., 5280760., 5799927.,  5828382.,
      5856837.,  5885292.,  5257560., 5283264., 5308968., 5334672.,  4722548.,
      4745480.,  4768412.,  4791344., 4194975., 4215114., 4235253.,  4255392.,
      5127864.,  5151216.,  5174568., 5197920., 5912224., 5939008.,  5965792.,
      5992576.,  6688896.,  6719136., 6749376., 6779616., 7457784.,  7491504.,
      7525224.,  7558944.,  6792056., 6822512., 6852968., 6883424.,  6135328.,
      6162496.,  6189664.,  6216832., 5430864., 5454720., 5478576.,  5502432.,
      6344544.,  6371760.,  6398976., 6426192., 7301900., 7333112.,  7364324.,
      7395536.,  8250231.,  8285466., 8320701., 8355936., 9189429.,  9228714.,
      9267999.,  9307284.,  8351382., 8386860., 8422338., 8457816.,  7523708.,
      7555352.,  7586996.,  7618640., 6644563., 6672346., 6700129.,  6727912.,
      7535674.,  7566964.,  7598254., 7629544., 8661416., 8697296.,  8733176.,
      8769056.,  9776556.,  9817056., 9857556., 9898056., 10880974., 10926124.,
      10971274., 11016424., 9873538., 9914308., 9955078., 9995848.,  8878088.,
      8914448.,  8950808.,  8987168., 7827672., 7859592., 7891512.,  7923432.,
      7009746.,  7038852.,  7067958., 7097064., 8066364., 8099736.,  8133108.,
      8166480.,  9112821.,  9150486., 9188151., 9225816., 10149009., 10190994.,
      10232979., 10274964., 9224228., 9262136., 9300044., 9337952.,  8310956.,
      8344760.,  8378564.,  8412368., 7337109., 7366782., 7396455.,  7426128.,
      6597848.,  6624560.,  6651272., 6677984., 7602592., 7633216.,  7663840.,
      7694464.,  8597856.,  8632416., 8666976., 8701536., 9583544.,  9622064.,
      9660584.,  9699104.,  8725848., 8760624., 8795400., 8830176.,  7878944.,
      7909952.,  7940960.,  7971968., 6965616., 6992832., 7020048.,  7047264.,
      6308380.,  6332488.,  6356596., 6380704., 7279700., 7307336.,  7334972.,
      7362608.,  8242461.,  8273646., 8304831., 8336016., 9196579.,  9231334.,
      9266089.,  9300844.,  8389198., 8420572., 8451946., 8483320.,  7591652.,
      7619624.,  7647596.,  7675568., 6721593., 6746142., 6770691.,  6795240.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x10x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      750440.,  756080.,  761720.,  767360.,  755000.,  760688.,  766376.,
      772064.,  759560.,  765296.,  771032.,  776768.,  764120.,  769904.,
      775688.,  781472.,  768680.,  774512.,  780344.,  786176.,  773240.,
      779120.,  785000.,  790880.,  777800.,  783728.,  789656.,  795584.,
      796040.,  802160.,  808280.,  814400.,  800600.,  806768.,  812936.,
      819104.,  805160.,  811376.,  817592.,  823808.,  809720.,  815984.,
      822248.,  828512.,  814280.,  820592.,  826904.,  833216.,  818840.,
      825200.,  831560.,  837920.,  823400.,  829808.,  836216.,  842624.,
      841640.,  848240.,  854840.,  861440.,  846200.,  852848.,  859496.,
      866144.,  850760.,  857456.,  864152.,  870848.,  855320.,  862064.,
      868808.,  875552.,  859880.,  866672.,  873464.,  880256.,  864440.,
      871280.,  878120.,  884960.,  869000.,  875888.,  882776.,  889664.,
      887240.,  894320.,  901400.,  908480.,  891800.,  898928.,  906056.,
      913184.,  896360.,  903536.,  910712.,  917888.,  900920.,  908144.,
      915368.,  922592.,  905480.,  912752.,  920024.,  927296.,  910040.,
      917360.,  924680.,  932000.,  914600.,  921968.,  929336.,  936704.,
      932840.,  940400.,  947960.,  955520.,  937400.,  945008.,  952616.,
      960224.,  941960.,  949616.,  957272.,  964928.,  946520.,  954224.,
      961928.,  969632.,  951080.,  958832.,  966584.,  974336.,  955640.,
      963440.,  971240.,  979040.,  960200.,  968048.,  975896.,  983744.,
      978440.,  986480.,  994520.,  1002560., 983000.,  991088.,  999176.,
      1007264., 987560.,  995696.,  1003832., 1011968., 992120.,  1000304.,
      1008488., 1016672., 996680.,  1004912., 1013144., 1021376., 1001240.,
      1009520., 1017800., 1026080., 1005800., 1014128., 1022456., 1030784.,
      1024040., 1032560., 1041080., 1049600., 1028600., 1037168., 1045736.,
      1054304., 1033160., 1041776., 1050392., 1059008., 1037720., 1046384.,
      1055048., 1063712., 1042280., 1050992., 1059704., 1068416., 1046840.,
      1055600., 1064360., 1073120., 1051400., 1060208., 1069016., 1077824.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1690061., 1723368., 1943112., 1981104., 2180163., 2222584., 2417770.,
      2464620., 2195419., 2237584., 1974216., 2011696., 1754245., 1787040.,
      2266360., 2304608., 2625472., 2669184., 2974152., 3023072., 3323824.,
      3377952., 3063112., 3112032., 2803648., 2847360., 2488952., 2527200.,
      3031963., 3075664., 3510200., 3560144., 3983333., 4039264., 4457654.,
      4519572., 4094429., 4150360., 3732280., 3782224., 3309619., 3353320.,
      3880166., 3929320., 4488368., 4544544., 5096554., 5159496., 5705884.,
      5775592., 5096554., 5159496., 4488368., 4544544., 3880166., 3929320.,
      3309619., 3353320., 3732280., 3782224., 4094429., 4150360., 4457654.,
      4519572., 3983333., 4039264., 3510200., 3560144., 3031963., 3075664.,
      2488952., 2527200., 2803648., 2847360., 3063112., 3112032., 3323824.,
      3377952., 2974152., 3023072., 2625472., 2669184., 2266360., 2304608.,
      1754245., 1787040., 1974216., 2011696., 2195419., 2237584., 2417770.,
      2464620., 2180163., 2222584., 1943112., 1981104., 1690061., 1723368.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x10x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      753776.,  767360.,  758384.,  772064.,  762992.,  776768.,  767600.,
      781472.,  772208.,  786176.,  776816.,  790880.,  781424.,  795584.,
      799856.,  814400.,  804464.,  819104.,  809072.,  823808.,  813680.,
      828512.,  818288.,  833216.,  822896.,  837920.,  827504.,  842624.,
      845936.,  861440.,  850544.,  866144.,  855152.,  870848.,  859760.,
      875552.,  864368.,  880256.,  868976.,  884960.,  873584.,  889664.,
      892016.,  908480.,  896624.,  913184.,  901232.,  917888.,  905840.,
      922592.,  910448.,  927296.,  915056.,  932000.,  919664.,  936704.,
      938096.,  955520.,  942704.,  960224.,  947312.,  964928.,  951920.,
      969632.,  956528.,  974336.,  961136.,  979040.,  965744.,  983744.,
      984176.,  1002560., 988784.,  1007264., 993392.,  1011968., 998000.,
      1016672., 1002608., 1021376., 1007216., 1026080., 1011824., 1030784.,
      1030256., 1049600., 1034864., 1054304., 1039472., 1059008., 1044080.,
      1063712., 1048688., 1068416., 1053296., 1073120., 1057904., 1077824.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1835081., 1852570., 1888492., 1906128., 2091696., 2111632., 2152664.,
      2172768., 2329581., 2351750., 2397850., 2420208., 2565464., 2589908.,
      2641034., 2665688., 2312355., 2334390., 2380368., 2402592., 2065168.,
      2084752., 2125624., 2145376., 1824071., 1841162., 1876970., 1894208.,
      2191656., 2211056., 2251856., 2271424., 2529536., 2551680., 2598336.,
      2620672., 2863912., 2888592., 2941056., 2965952., 3196128., 3223392.,
      3281616., 3309120., 2935416., 2960016., 3012560., 3037376., 2681344.,
      2703232., 2750144., 2772224., 2377528., 2396656., 2437728., 2457024.,
      2756435., 2778166., 2823936., 2845856., 3190384., 3215216., 3267528.,
      3292576., 3635575., 3663306., 3722106., 3750080., 4077968., 4108652.,
      4173886., 4204840., 3742081., 3769786., 3828612., 3856560., 3413520.,
      3438192., 3490664., 3515552., 3030805., 3052390., 3098306., 3120080.,
      3414314., 3438796., 3489116., 3513808., 3955712., 3983712., 4041200.,
      4069440., 4522618., 4553940., 4618536., 4650128., 5085608., 5120312.,
      5191956., 5226960., 4528734., 4560084., 4624652., 4656272., 3980352.,
      4008288., 4065840., 4094016., 3439422., 3463884., 3514224., 3538896.,
      3041215., 3063142., 3108716., 3130832., 3437712., 3462768., 3514856.,
      3540128., 3773291., 3801274., 3859566., 3887792., 4105336., 4136300.,
      4200742., 4231976., 3658901., 3686858., 3744920., 3773120., 3220016.,
      3244912., 3296648., 3321760., 2782497., 2804278., 2849486., 2871456.,
      2297064., 2316016., 2355472., 2374592., 2607872., 2629504., 2674624.,
      2696448., 2868840., 2892944., 2943424., 2967744., 3127136., 3153760.,
      3209552., 3236416., 2798264., 2822288., 2872592., 2896832., 2476032.,
      2497408., 2542272., 2563840., 2149112., 2167792., 2207008., 2225856.,
      1761093., 1776650., 1810408., 1826112., 2017872., 2035600., 2074232.,
      2092128., 2272465., 2292406., 2335870., 2356000., 2524704., 2546900.,
      2595154., 2617560., 2283047., 2303110., 2346708., 2366960., 2046640.,
      2064528., 2103512., 2121568., 1799011., 1814682., 1848838., 1864656.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x10x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1496320., 1507552., 1523440., 1534720., 1505440., 1516768., 1532752.,
      1544128., 1514560., 1525984., 1542064., 1553536., 1523680., 1535200.,
      1551376., 1562944., 1532800., 1544416., 1560688., 1572352., 1541920.,
      1553632., 1570000., 1581760., 1551040., 1562848., 1579312., 1591168.,
      1587520., 1599712., 1616560., 1628800., 1596640., 1608928., 1625872.,
      1638208., 1605760., 1618144., 1635184., 1647616., 1614880., 1627360.,
      1644496., 1657024., 1624000., 1636576., 1653808., 1666432., 1633120.,
      1645792., 1663120., 1675840., 1642240., 1655008., 1672432., 1685248.,
      1678720., 1691872., 1709680., 1722880., 1687840., 1701088., 1718992.,
      1732288., 1696960., 1710304., 1728304., 1741696., 1706080., 1719520.,
      1737616., 1751104., 1715200., 1728736., 1746928., 1760512., 1724320.,
      1737952., 1756240., 1769920., 1733440., 1747168., 1765552., 1779328.,
      1769920., 1784032., 1802800., 1816960., 1779040., 1793248., 1812112.,
      1826368., 1788160., 1802464., 1821424., 1835776., 1797280., 1811680.,
      1830736., 1845184., 1806400., 1820896., 1840048., 1854592., 1815520.,
      1830112., 1849360., 1864000., 1824640., 1839328., 1858672., 1873408.,
      1861120., 1876192., 1895920., 1911040., 1870240., 1885408., 1905232.,
      1920448., 1879360., 1894624., 1914544., 1929856., 1888480., 1903840.,
      1923856., 1939264., 1897600., 1913056., 1933168., 1948672., 1906720.,
      1922272., 1942480., 1958080., 1915840., 1931488., 1951792., 1967488.,
      1952320., 1968352., 1989040., 2005120., 1961440., 1977568., 1998352.,
      2014528., 1970560., 1986784., 2007664., 2023936., 1979680., 1996000.,
      2016976., 2033344., 1988800., 2005216., 2026288., 2042752., 1997920.,
      2014432., 2035600., 2052160., 2007040., 2023648., 2044912., 2061568.,
      2043520., 2060512., 2082160., 2099200., 2052640., 2069728., 2091472.,
      2108608., 2061760., 2078944., 2100784., 2118016., 2070880., 2088160.,
      2110096., 2127424., 2080000., 2097376., 2119408., 2136832., 2089120.,
      2106592., 2128720., 2146240., 2098240., 2115808., 2138032., 2155648.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2379073., 2396562., 2414051., 2431540., 2467060., 2484696., 2502332.,
      2519968., 2738048., 2757984., 2777920., 2797856., 2838312., 2858416.,
      2878520., 2898624., 2972225., 2994394., 3016563., 3038732., 3084254.,
      3106612., 3128970., 3151328., 3196724., 3221168., 3245612., 3270056.,
      3320518., 3345172., 3369826., 3394480., 2840115., 2862150., 2884185.,
      2906220., 2951632., 2973856., 2996080., 3018304., 2501024., 2520608.,
      2540192., 2559776., 2600264., 2620016., 2639768., 2659520., 2177483.,
      2194574., 2211665., 2228756., 2264190., 2281428., 2298666., 2315904.,
      2286216., 2305616., 2325016., 2344416., 2384944., 2404512., 2424080.,
      2443648., 2628480., 2650624., 2672768., 2694912., 2741312., 2763648.,
      2785984., 2808320., 2941416., 2966096., 2990776., 3015456., 3067840.,
      3092736., 3117632., 3142528., 3243840., 3271104., 3298368., 3325632.,
      3383856., 3411360., 3438864., 3466368., 2963672., 2988272., 3012872.,
      3037472., 3090096., 3114912., 3139728., 3164544., 2702976., 2724864.,
      2746752., 2768640., 2815808., 2837888., 2859968., 2882048., 2398136.,
      2417264., 2436392., 2455520., 2496864., 2516160., 2535456., 2554752.,
      2612419., 2634150., 2655881., 2677612., 2723936., 2745856., 2767776.,
      2789696., 3029984., 3054816., 3079648., 3104480., 3157432., 3182480.,
      3207528., 3232576., 3447195., 3474926., 3502657., 3530388., 3590062.,
      3618036., 3646010., 3673984., 3852100., 3882784., 3913468., 3944152.,
      4010386., 4041340., 4072294., 4103248., 3534793., 3562498., 3590203.,
      3617908., 3677660., 3705608., 3733556., 3761504., 3238848., 3263520.,
      3288192., 3312864., 3366296., 3391184., 3416072., 3440960., 2890457.,
      2912042., 2933627., 2955212., 3001974., 3023748., 3045522., 3067296.,
      3088562., 3113044., 3137526., 3162008., 3212868., 3237560., 3262252.,
      3286944., 3599008., 3627008., 3655008., 3683008., 3741072., 3769312.,
      3797552., 3825792., 4137114., 4168436., 4199758., 4231080., 4296424.,
      4328016., 4359608., 4391200., 4660160., 4694864., 4729568., 4764272.,
      4836716., 4871720., 4906724., 4941728., 4150342., 4181692., 4213042.,
      4244392., 4309652., 4341272., 4372892., 4404512., 3664736., 3692672.,
      3720608., 3748544., 3806800., 3834976., 3863152., 3891328., 3184878.,
      3209340., 3233802., 3258264., 3309184., 3333856., 3358528., 3383200.,
      2818263., 2840190., 2862117., 2884044., 2930804., 2952920., 2975036.,
      2997152., 3192640., 3217696., 3242752., 3267808., 3321112., 3346384.,
      3371656., 3396928., 3524999., 3552982., 3580965., 3608948., 3668634.,
      3696860., 3725086., 3753312., 3844092., 3875056., 3906020., 3936984.,
      4002890., 4034124., 4065358., 4096592., 3419125., 3447082., 3475039.,
      3502996., 3562248., 3590448., 3618648., 3646848., 3015456., 3040352.,
      3065248., 3090144., 3142904., 3168016., 3193128., 3218240., 2604333.,
      2626114., 2647895., 2669676., 2715594., 2737564., 2759534., 2781504.,
      2126792., 2145744., 2164696., 2183648., 2223472., 2242592., 2261712.,
      2280832., 2436480., 2458112., 2479744., 2501376., 2546752., 2568576.,
      2590400., 2612224., 2731944., 2756048., 2780152., 2804256., 2855040.,
      2879360., 2903680., 2928000., 3016384., 3043008., 3069632., 3096256.,
      3152304., 3179168., 3206032., 3232896., 2692504., 2716528., 2740552.,
      2764576., 2814832., 2839072., 2863312., 2887552., 2387072., 2408448.,
      2429824., 2451200., 2495808., 2517376., 2538944., 2560512., 2088952.,
      2107632., 2126312., 2144992., 2183840., 2202688., 2221536., 2240384.,
      1846981., 1862538., 1878095., 1893652., 1927288., 1942992., 1958696.,
      1974400., 2159456., 2177184., 2194912., 2212640., 2251016., 2268912.,
      2286808., 2304704., 2492861., 2512802., 2532743., 2552684., 2595930.,
      2616060., 2636190., 2656320., 2816396., 2838592., 2860788., 2882984.,
      2930974., 2953380., 2975786., 2998192., 2549487., 2569550., 2589613.,
      2609676., 2652812., 2673064., 2693316., 2713568., 2297728., 2315616.,
      2333504., 2351392., 2389800., 2407856., 2425912., 2443968., 1979279.,
      1994950., 2010621., 2026292., 2059842., 2075660., 2091478., 2107296.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x10x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2981408., 2992640., 3003872., 3015104., 3035600., 3046880., 3058160.,
      3069440., 2999552., 3010880., 3022208., 3033536., 3054128., 3065504.,
      3076880., 3088256., 3017696., 3029120., 3040544., 3051968., 3072656.,
      3084128., 3095600., 3107072., 3035840., 3047360., 3058880., 3070400.,
      3091184., 3102752., 3114320., 3125888., 3053984., 3065600., 3077216.,
      3088832., 3109712., 3121376., 3133040., 3144704., 3072128., 3083840.,
      3095552., 3107264., 3128240., 3140000., 3151760., 3163520., 3090272.,
      3102080., 3113888., 3125696., 3146768., 3158624., 3170480., 3182336.,
      3162848., 3175040., 3187232., 3199424., 3220880., 3233120., 3245360.,
      3257600., 3180992., 3193280., 3205568., 3217856., 3239408., 3251744.,
      3264080., 3276416., 3199136., 3211520., 3223904., 3236288., 3257936.,
      3270368., 3282800., 3295232., 3217280., 3229760., 3242240., 3254720.,
      3276464., 3288992., 3301520., 3314048., 3235424., 3248000., 3260576.,
      3273152., 3294992., 3307616., 3320240., 3332864., 3253568., 3266240.,
      3278912., 3291584., 3313520., 3326240., 3338960., 3351680., 3271712.,
      3284480., 3297248., 3310016., 3332048., 3344864., 3357680., 3370496.,
      3344288., 3357440., 3370592., 3383744., 3406160., 3419360., 3432560.,
      3445760., 3362432., 3375680., 3388928., 3402176., 3424688., 3437984.,
      3451280., 3464576., 3380576., 3393920., 3407264., 3420608., 3443216.,
      3456608., 3470000., 3483392., 3398720., 3412160., 3425600., 3439040.,
      3461744., 3475232., 3488720., 3502208., 3416864., 3430400., 3443936.,
      3457472., 3480272., 3493856., 3507440., 3521024., 3435008., 3448640.,
      3462272., 3475904., 3498800., 3512480., 3526160., 3539840., 3453152.,
      3466880., 3480608., 3494336., 3517328., 3531104., 3544880., 3558656.,
      3525728., 3539840., 3553952., 3568064., 3591440., 3605600., 3619760.,
      3633920., 3543872., 3558080., 3572288., 3586496., 3609968., 3624224.,
      3638480., 3652736., 3562016., 3576320., 3590624., 3604928., 3628496.,
      3642848., 3657200., 3671552., 3580160., 3594560., 3608960., 3623360.,
      3647024., 3661472., 3675920., 3690368., 3598304., 3612800., 3627296.,
      3641792., 3665552., 3680096., 3694640., 3709184., 3616448., 3631040.,
      3645632., 3660224., 3684080., 3698720., 3713360., 3728000., 3634592.,
      3649280., 3663968., 3678656., 3702608., 3717344., 3732080., 3746816.,
      3707168., 3722240., 3737312., 3752384., 3776720., 3791840., 3806960.,
      3822080., 3725312., 3740480., 3755648., 3770816., 3795248., 3810464.,
      3825680., 3840896., 3743456., 3758720., 3773984., 3789248., 3813776.,
      3829088., 3844400., 3859712., 3761600., 3776960., 3792320., 3807680.,
      3832304., 3847712., 3863120., 3878528., 3779744., 3795200., 3810656.,
      3826112., 3850832., 3866336., 3881840., 3897344., 3797888., 3813440.,
      3828992., 3844544., 3869360., 3884960., 3900560., 3916160., 3816032.,
      3831680., 3847328., 3862976., 3887888., 3903584., 3919280., 3934976.,
      3888608., 3904640., 3920672., 3936704., 3962000., 3978080., 3994160.,
      4010240., 3906752., 3922880., 3939008., 3955136., 3980528., 3996704.,
      4012880., 4029056., 3924896., 3941120., 3957344., 3973568., 3999056.,
      4015328., 4031600., 4047872., 3943040., 3959360., 3975680., 3992000.,
      4017584., 4033952., 4050320., 4066688., 3961184., 3977600., 3994016.,
      4010432., 4036112., 4052576., 4069040., 4085504., 3979328., 3995840.,
      4012352., 4028864., 4054640., 4071200., 4087760., 4104320., 3997472.,
      4014080., 4030688., 4047296., 4073168., 4089824., 4106480., 4123136.,
      4070048., 4087040., 4104032., 4121024., 4147280., 4164320., 4181360.,
      4198400., 4088192., 4105280., 4122368., 4139456., 4165808., 4182944.,
      4200080., 4217216., 4106336., 4123520., 4140704., 4157888., 4184336.,
      4201568., 4218800., 4236032., 4124480., 4141760., 4159040., 4176320.,
      4202864., 4220192., 4237520., 4254848., 4142624., 4160000., 4177376.,
      4194752., 4221392., 4238816., 4256240., 4273664., 4160768., 4178240.,
      4195712., 4213184., 4239920., 4257440., 4274960., 4292480., 4178912.,
      4196480., 4214048., 4231616., 4258448., 4276064., 4293680., 4311296.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1848503., 1884980., 1921751., 1958816., 2111048., 2152736., 2194760.,
      2237120., 2377177., 2424076., 2471353., 2519008., 2647578., 2699688.,
      2752218., 2805168., 2391097., 2437996., 2485273., 2532928., 2137160.,
      2178848., 2220872., 2263232., 1886103., 1922580., 1959351., 1996416.,
      2206728., 2248160., 2289928., 2332032., 2563520., 2610944., 2658752.,
      2706944., 2945144., 2998560., 3052408., 3106688., 3331760., 3391168.,
      3451056., 3511424., 3069816., 3123488., 3177592., 3232128., 2810816.,
      2858752., 2907072., 2955776., 2507784., 2549728., 2592008., 2634624.,
      2922297., 2969196., 3016473., 3064128., 3413304., 3466976., 3521080.,
      3575616., 3949431., 4009876., 4070807., 4132224., 4490310., 4557528.,
      4625286., 4693584., 4143191., 4203892., 4265079., 4326752., 3799352.,
      3853536., 3908152., 3963200., 3401625., 3449036., 3496825., 3544992.,
      3869706., 3920792., 3972298., 4024224., 4525744., 4584128., 4642992.,
      4702336., 5247254., 5312936., 5379158., 5445920., 5973340., 6046320.,
      6119900., 6194080., 5247254., 5312936., 5379158., 5445920., 4525744.,
      4584128., 4642992., 4702336., 3869706., 3920792., 3972298., 4024224.,
      3401625., 3449036., 3496825., 3544992., 3799352., 3853536., 3908152.,
      3963200., 4143191., 4203892., 4265079., 4326752., 4490310., 4557528.,
      4625286., 4693584., 3949431., 4009876., 4070807., 4132224., 3413304.,
      3466976., 3521080., 3575616., 2922297., 2969196., 3016473., 3064128.,
      2507784., 2549728., 2592008., 2634624., 2810816., 2858752., 2907072.,
      2955776., 3069816., 3123488., 3177592., 3232128., 3331760., 3391168.,
      3451056., 3511424., 2945144., 2998560., 3052408., 3106688., 2563520.,
      2610944., 2658752., 2706944., 2206728., 2248160., 2289928., 2332032.,
      1886103., 1922580., 1959351., 1996416., 2137160., 2178848., 2220872.,
      2263232., 2391097., 2437996., 2485273., 2532928., 2647578., 2699688.,
      2752218., 2805168., 2377177., 2424076., 2471353., 2519008., 2111048.,
      2152736., 2194760., 2237120., 1848503., 1884980., 1921751., 1958816.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x10x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2988080., 3015104., 3042224., 3069440., 3006320., 3033536., 3060848.,
      3088256., 3024560., 3051968., 3079472., 3107072., 3042800., 3070400.,
      3098096., 3125888., 3061040., 3088832., 3116720., 3144704., 3079280.,
      3107264., 3135344., 3163520., 3097520., 3125696., 3153968., 3182336.,
      3170480., 3199424., 3228464., 3257600., 3188720., 3217856., 3247088.,
      3276416., 3206960., 3236288., 3265712., 3295232., 3225200., 3254720.,
      3284336., 3314048., 3243440., 3273152., 3302960., 3332864., 3261680.,
      3291584., 3321584., 3351680., 3279920., 3310016., 3340208., 3370496.,
      3352880., 3383744., 3414704., 3445760., 3371120., 3402176., 3433328.,
      3464576., 3389360., 3420608., 3451952., 3483392., 3407600., 3439040.,
      3470576., 3502208., 3425840., 3457472., 3489200., 3521024., 3444080.,
      3475904., 3507824., 3539840., 3462320., 3494336., 3526448., 3558656.,
      3535280., 3568064., 3600944., 3633920., 3553520., 3586496., 3619568.,
      3652736., 3571760., 3604928., 3638192., 3671552., 3590000., 3623360.,
      3656816., 3690368., 3608240., 3641792., 3675440., 3709184., 3626480.,
      3660224., 3694064., 3728000., 3644720., 3678656., 3712688., 3746816.,
      3717680., 3752384., 3787184., 3822080., 3735920., 3770816., 3805808.,
      3840896., 3754160., 3789248., 3824432., 3859712., 3772400., 3807680.,
      3843056., 3878528., 3790640., 3826112., 3861680., 3897344., 3808880.,
      3844544., 3880304., 3916160., 3827120., 3862976., 3898928., 3934976.,
      3900080., 3936704., 3973424., 4010240., 3918320., 3955136., 3992048.,
      4029056., 3936560., 3973568., 4010672., 4047872., 3954800., 3992000.,
      4029296., 4066688., 3973040., 4010432., 4047920., 4085504., 3991280.,
      4028864., 4066544., 4104320., 4009520., 4047296., 4085168., 4123136.,
      4082480., 4121024., 4159664., 4198400., 4100720., 4139456., 4178288.,
      4217216., 4118960., 4157888., 4196912., 4236032., 4137200., 4176320.,
      4215536., 4254848., 4155440., 4194752., 4234160., 4273664., 4173680.,
      4213184., 4252784., 4292480., 4191920., 4231616., 4271408., 4311296.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2526559., 2544750., 2580678., 2599016., 2635385., 2653870., 2690680.,
      2709312., 2944888., 2965648., 3006592., 3027520., 3068968., 3090064.,
      3132016., 3153280., 3195453., 3218610., 3264742., 3288088., 3334787.,
      3358322., 3405588., 3429312., 3443214., 3468852., 3520088., 3545936.,
      3597802., 3623860., 3676356., 3702624., 3027721., 3050866., 3097010.,
      3120344., 3167055., 3190578., 3237856., 3261568., 2628664., 2649232.,
      2690368., 2711104., 2752744., 2773648., 2815792., 2836864., 2242363.,
      2260270., 2296226., 2314280., 2350677., 2368878., 2405716., 2424064.,
      2356520., 2376720., 2417712., 2438080., 2479576., 2500112., 2542112.,
      2562816., 2670912., 2694016., 2740992., 2764288., 2811840., 2835328.,
      2883456., 2907136., 2990072., 3015920., 3069040., 3095104., 3148872.,
      3175152., 3229568., 3256064., 3306832., 3335520., 3394688., 3423616.,
      3483504., 3512672., 3573280., 3602688., 2997656., 3023600., 3077136.,
      3103296., 3157480., 3183856., 3238688., 3265280., 2706752., 2729856.,
      2777856., 2801152., 2849728., 2873216., 2922368., 2946048., 2372936.,
      2393104., 2435152., 2455488., 2498040., 2518544., 2561600., 2582272.,
      2643305., 2666354., 2713618., 2736856., 2784687., 2808114., 2856512.,
      2880128., 3058504., 3084912., 3139008., 3165632., 3220376., 3247216.,
      3302608., 3329664., 3518011., 3547630., 3608706., 3638568., 3700373.,
      3730478., 3793012., 3823360., 3973602., 4006540., 4074488., 4107696.,
      4176454., 4209932., 4279500., 4313248., 3654447., 3684270., 3745654.,
      3775720., 3837833., 3868142., 3930984., 3961536., 3355272., 3381872.,
      3436800., 3463616., 3519192., 3546224., 3602448., 3629696., 2994509.,
      3017778., 3065846., 3089304., 3137939., 3161586., 3210788., 3234624.,
      3322530., 3347988., 3399404., 3425072., 3477118., 3502996., 3555672.,
      3581760., 3890064., 3919200., 3977920., 4007296., 4066736., 4096352.,
      4156512., 4186368., 4541574., 4574252., 4640412., 4673360., 4740330.,
      4773548., 4841328., 4874816., 5187780., 5224120., 5297600., 5334240.,
      5408620., 5445560., 5520840., 5558080., 4543566., 4576300., 4642404.,
      4675408., 4742322., 4775596., 4843320., 4876864., 3922960., 3951968.,
      4010816., 4040064., 4099632., 4129120., 4189408., 4219136., 3349194.,
      3374612., 3426068., 3451696., 3503782., 3529620., 3582336., 3608384.,
      3069601., 3093554., 3141962., 3166104., 3215079., 3239410., 3288952.,
      3313472., 3427208., 3454576., 3509760., 3537344., 3593176., 3620976.,
      3677456., 3705472., 3770627., 3801262., 3863114., 3893992., 3956573.,
      3987694., 4051004., 4082368., 4108210., 4142220., 4210632., 4244912.,
      4314134., 4348684., 4418716., 4453536., 3628919., 3659502., 3720894.,
      3751720., 3813841., 3844910., 3907760., 3939072., 3171528., 3198576.,
      3253056., 3280320., 3335448., 3362928., 3418704., 3446400., 2718213.,
      2741874., 2789294., 2813144., 2861131., 2885170., 2933724., 2957952.,
      2410920., 2432528., 2474672., 2496448., 2539096., 2561040., 2604192.,
      2626304., 2726208., 2750848., 2798848., 2823680., 2872256., 2897280.,
      2946432., 2971648., 3058296., 3085808., 3139568., 3167296., 3221704.,
      3249648., 3304704., 3332864., 3384912., 3415392., 3474816., 3505536.,
      3565680., 3596640., 3657504., 3688704., 3012632., 3039984., 3093136.,
      3120704., 3174504., 3202288., 3256736., 3284736., 2660672., 2684800.,
      2731776., 2756096., 2803648., 2828160., 2876288., 2900992., 2325704.,
      2346768., 2387664., 2408896., 2450296., 2471696., 2513600., 2535168.,
      2287671., 2306094., 2342302., 2360872., 2397521., 2416238., 2453328.,
      2472192., 2654392., 2675344., 2716608., 2737728., 2779496., 2800784.,
      2843056., 2864512., 3077221., 3100786., 3147278., 3171032., 3218091.,
      3242034., 3289660., 3313792., 3494814., 3521076., 3572712., 3599184.,
      3651450., 3678132., 3731028., 3757920., 3186353., 3209906., 3256154.,
      3279896., 3326711., 3350642., 3398024., 3422144., 2895736., 2916496.,
      2957440., 2978368., 3019816., 3040912., 3082864., 3104128., 2457747.,
      2475886., 2511610., 2529896., 2566061., 2584494., 2621100., 2639680.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x10x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5953744., 5976160., 6007744., 6030208., 6061936., 6084448., 6116320.,
      6138880., 5990032., 6012640., 6044416., 6067072., 6098992., 6121696.,
      6153760., 6176512., 6026320., 6049120., 6081088., 6103936., 6136048.,
      6158944., 6191200., 6214144., 6062608., 6085600., 6117760., 6140800.,
      6173104., 6196192., 6228640., 6251776., 6098896., 6122080., 6154432.,
      6177664., 6210160., 6233440., 6266080., 6289408., 6135184., 6158560.,
      6191104., 6214528., 6247216., 6270688., 6303520., 6327040., 6171472.,
      6195040., 6227776., 6251392., 6284272., 6307936., 6340960., 6364672.,
      6316624., 6340960., 6374464., 6398848., 6432496., 6456928., 6490720.,
      6515200., 6352912., 6377440., 6411136., 6435712., 6469552., 6494176.,
      6528160., 6552832., 6389200., 6413920., 6447808., 6472576., 6506608.,
      6531424., 6565600., 6590464., 6425488., 6450400., 6484480., 6509440.,
      6543664., 6568672., 6603040., 6628096., 6461776., 6486880., 6521152.,
      6546304., 6580720., 6605920., 6640480., 6665728., 6498064., 6523360.,
      6557824., 6583168., 6617776., 6643168., 6677920., 6703360., 6534352.,
      6559840., 6594496., 6620032., 6654832., 6680416., 6715360., 6740992.,
      6679504., 6705760., 6741184., 6767488., 6803056., 6829408., 6865120.,
      6891520., 6715792., 6742240., 6777856., 6804352., 6840112., 6866656.,
      6902560., 6929152., 6752080., 6778720., 6814528., 6841216., 6877168.,
      6903904., 6940000., 6966784., 6788368., 6815200., 6851200., 6878080.,
      6914224., 6941152., 6977440., 7004416., 6824656., 6851680., 6887872.,
      6914944., 6951280., 6978400., 7014880., 7042048., 6860944., 6888160.,
      6924544., 6951808., 6988336., 7015648., 7052320., 7079680., 6897232.,
      6924640., 6961216., 6988672., 7025392., 7052896., 7089760., 7117312.,
      7042384., 7070560., 7107904., 7136128., 7173616., 7201888., 7239520.,
      7267840., 7078672., 7107040., 7144576., 7172992., 7210672., 7239136.,
      7276960., 7305472., 7114960., 7143520., 7181248., 7209856., 7247728.,
      7276384., 7314400., 7343104., 7151248., 7180000., 7217920., 7246720.,
      7284784., 7313632., 7351840., 7380736., 7187536., 7216480., 7254592.,
      7283584., 7321840., 7350880., 7389280., 7418368., 7223824., 7252960.,
      7291264., 7320448., 7358896., 7388128., 7426720., 7456000., 7260112.,
      7289440., 7327936., 7357312., 7395952., 7425376., 7464160., 7493632.,
      7405264., 7435360., 7474624., 7504768., 7544176., 7574368., 7613920.,
      7644160., 7441552., 7471840., 7511296., 7541632., 7581232., 7611616.,
      7651360., 7681792., 7477840., 7508320., 7547968., 7578496., 7618288.,
      7648864., 7688800., 7719424., 7514128., 7544800., 7584640., 7615360.,
      7655344., 7686112., 7726240., 7757056., 7550416., 7581280., 7621312.,
      7652224., 7692400., 7723360., 7763680., 7794688., 7586704., 7617760.,
      7657984., 7689088., 7729456., 7760608., 7801120., 7832320., 7622992.,
      7654240., 7694656., 7725952., 7766512., 7797856., 7838560., 7869952.,
      7768144., 7800160., 7841344., 7873408., 7914736., 7946848., 7988320.,
      8020480., 7804432., 7836640., 7878016., 7910272., 7951792., 7984096.,
      8025760., 8058112., 7840720., 7873120., 7914688., 7947136., 7988848.,
      8021344., 8063200., 8095744., 7877008., 7909600., 7951360., 7984000.,
      8025904., 8058592., 8100640., 8133376., 7913296., 7946080., 7988032.,
      8020864., 8062960., 8095840., 8138080., 8171008., 7949584., 7982560.,
      8024704., 8057728., 8100016., 8133088., 8175520., 8208640., 7985872.,
      8019040., 8061376., 8094592., 8137072., 8170336., 8212960., 8246272.,
      8131024., 8164960., 8208064., 8242048., 8285296., 8319328., 8362720.,
      8396800., 8167312., 8201440., 8244736., 8278912., 8322352., 8356576.,
      8400160., 8434432., 8203600., 8237920., 8281408., 8315776., 8359408.,
      8393824., 8437600., 8472064., 8239888., 8274400., 8318080., 8352640.,
      8396464., 8431072., 8475040., 8509696., 8276176., 8310880., 8354752.,
      8389504., 8433520., 8468320., 8512480., 8547328., 8312464., 8347360.,
      8391424., 8426368., 8470576., 8505568., 8549920., 8584960., 8348752.,
      8383840., 8428096., 8463232., 8507632., 8542816., 8587360., 8622592.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, SAME3x10x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2337199., 2355390., 2373581., 2391772., 2428394., 2446732., 2465070.,
      2483408., 2520765., 2539250., 2557735., 2576220., 2614312., 2632944.,
      2651576., 2670208., 2701784., 2722544., 2743304., 2764064., 2805568.,
      2826496., 2847424., 2868352., 2910696., 2931792., 2952888., 2973984.,
      3017168., 3038432., 3059696., 3080960., 2933509., 2956666., 2979823.,
      3002980., 3049626., 3072972., 3096318., 3119664., 3167255., 3190790.,
      3214325., 3237860., 3286396., 3310120., 3333844., 3357568., 3148278.,
      3173916., 3199554., 3225192., 3276728., 3302576., 3328424., 3354272.,
      3406858., 3432916., 3458974., 3485032., 3538668., 3564936., 3591204.,
      3617472., 2733737., 2756882., 2780027., 2803172., 2849342., 2872676.,
      2896010., 2919344., 2966459., 2989982., 3013505., 3037028., 3085088.,
      3108800., 3132512., 3156224., 2361368., 2381936., 2402504., 2423072.,
      2464128., 2484864., 2505600., 2526336., 2568232., 2589136., 2610040.,
      2630944., 2673680., 2694752., 2715824., 2736896., 2007427., 2025334.,
      2043241., 2061148., 2096830., 2114884., 2132938., 2150992., 2187409.,
      2205610., 2223811., 2242012., 2279164., 2297512., 2315860., 2334208.,
      2336872., 2357072., 2377272., 2397472., 2438864., 2459232., 2479600.,
      2499968., 2542200., 2562736., 2583272., 2603808., 2646880., 2667584.,
      2688288., 2708992., 2659392., 2682496., 2705600., 2728704., 2775808.,
      2799104., 2822400., 2845696., 2893760., 2917248., 2940736., 2964224.,
      3013248., 3036928., 3060608., 3084288., 3049720., 3075568., 3101416.,
      3127264., 3180304., 3206368., 3232432., 3258496., 3312616., 3338896.,
      3365176., 3391456., 3446656., 3473152., 3499648., 3526144., 3420816.,
      3449504., 3478192., 3506880., 3565568., 3594496., 3623424., 3652352.,
      3712240., 3741408., 3770576., 3799744., 3860832., 3890240., 3919648.,
      3949056., 3102680., 3128624., 3154568., 3180512., 3233264., 3259424.,
      3285584., 3311744., 3365576., 3391952., 3418328., 3444704., 3499616.,
      3526208., 3552800., 3579392., 2831424., 2854528., 2877632., 2900736.,
      2947840., 2971136., 2994432., 3017728., 3065792., 3089280., 3112768.,
      3136256., 3185280., 3208960., 3232640., 3256320., 2515656., 2535824.,
      2555992., 2576160., 2617136., 2637472., 2657808., 2678144., 2719960.,
      2740464., 2760968., 2781472., 2824128., 2844800., 2865472., 2886144.,
      2765769., 2788818., 2811867., 2834916., 2881374., 2904612., 2927850.,
      2951088., 2998491., 3021918., 3045345., 3068772., 3117120., 3140736.,
      3164352., 3187968., 3092328., 3118736., 3145144., 3171552., 3224448.,
      3251072., 3277696., 3304320., 3358296., 3385136., 3411976., 3438816.,
      3493872., 3520928., 3547984., 3575040., 3459523., 3489142., 3518761.,
      3548380., 3608158., 3638020., 3667882., 3697744., 3758737., 3788842.,
      3818947., 3849052., 3911260., 3941608., 3971956., 4002304., 3803418.,
      3836356., 3869294., 3902232., 3968568., 4001776., 4034984., 4068192.,
      4135878., 4169356., 4202834., 4236312., 4305348., 4339096., 4372844.,
      4406592., 3425503., 3455326., 3485149., 3514972., 3574650., 3604716.,
      3634782., 3664848., 3725741., 3756050., 3786359., 3816668., 3878776.,
      3909328., 3939880., 3970432., 3100968., 3127568., 3154168., 3180768.,
      3234112., 3260928., 3287744., 3314560., 3368984., 3396016., 3423048.,
      3450080., 3505584., 3532832., 3560080., 3587328., 2707893., 2731162.,
      2754431., 2777700., 2824266., 2847724., 2871182., 2894640., 2942151.,
      2965798., 2989445., 3013092., 3061548., 3085384., 3109220., 3133056.,
      3100370., 3125828., 3151286., 3176744., 3228564., 3254232., 3279900.,
      3305568., 3358438., 3384316., 3410194., 3436072., 3489992., 3516080.,
      3542168., 3568256., 3575632., 3604768., 3633904., 3663040., 3721920.,
      3751296., 3780672., 3810048., 3870128., 3899744., 3929360., 3958976.,
      4020256., 4050112., 4079968., 4109824., 4170854., 4203532., 4236210.,
      4268888., 4335236., 4368184., 4401132., 4434080., 4501778., 4534996.,
      4568214., 4601432., 4670480., 4703968., 4737456., 4770944., 4739988.,
      4776328., 4812668., 4849008., 4922464., 4959104., 4995744., 5032384.,
      5107340., 5144280., 5181220., 5218160., 5294616., 5331856., 5369096.,
      5406336., 4124350., 4157084., 4189818., 4222552., 4288476., 4321480.,
      4354484., 4387488., 4454762., 4488036., 4521310., 4554584., 4623208.,
      4656752., 4690296., 4723840., 3570384., 3599392., 3628400., 3657408.,
      3716160., 3745408., 3774656., 3803904., 3863856., 3893344., 3922832.,
      3952320., 4013472., 4043200., 4072928., 4102656., 3025994., 3051412.,
      3076830., 3102248., 3153420., 3179048., 3204676., 3230304., 3282526.,
      3308364., 3334202., 3360040., 3413312., 3439360., 3465408., 3491456.,
      2876337., 2900290., 2924243., 2948196., 2996294., 3020436., 3044578.,
      3068720., 3117763., 3142094., 3166425., 3190756., 3240744., 3265264.,
      3289784., 3314304., 3211816., 3239184., 3266552., 3293920., 3348544.,
      3376128., 3403712., 3431296., 3487000., 3514800., 3542600., 3570400.,
      3627184., 3655200., 3683216., 3711232., 3611483., 3642118., 3672753.,
      3703388., 3764726., 3795604., 3826482., 3857360., 3919913., 3951034.,
      3982155., 4013276., 4077044., 4108408., 4139772., 4171136., 3986058.,
      4020068., 4054078., 4088088., 4155816., 4190096., 4224376., 4258656.,
      4327734., 4362284., 4396834., 4431384., 4501812., 4536632., 4571452.,
      4606272., 3589495., 3620078., 3650661., 3681244., 3741970., 3772796.,
      3803622., 3834448., 3896389., 3927458., 3958527., 3989596., 4052752.,
      4084064., 4115376., 4146688., 3251176., 3278224., 3305272., 3332320.,
      3386368., 3413632., 3440896., 3468160., 3523288., 3550768., 3578248.,
      3605728., 3661936., 3689632., 3717328., 3745024., 2836893., 2860554.,
      2884215., 2907876., 2954802., 2978652., 3002502., 3026352., 3074223.,
      3098262., 3122301., 3146340., 3195156., 3219384., 3243612., 3267840.,
      2815464., 2837072., 2858680., 2880288., 2923088., 2944864., 2966640.,
      2988416., 3032056., 3054000., 3075944., 3097888., 3142368., 3164480.,
      3186592., 3208704., 3099200., 3123840., 3148480., 3173120., 3221760.,
      3246592., 3271424., 3296256., 3345856., 3370880., 3395904., 3420928.,
      3471488., 3496704., 3521920., 3547136., 3391352., 3418864., 3446376.,
      3473888., 3528592., 3556320., 3584048., 3611776., 3667560., 3695504.,
      3723448., 3751392., 3808256., 3836416., 3864576., 3892736., 3662224.,
      3692704., 3723184., 3753664., 3814144., 3844864., 3875584., 3906304.,
      3967984., 3998944., 4029904., 4060864., 4123744., 4154944., 4186144.,
      4217344., 3192152., 3219504., 3246856., 3274208., 3328368., 3355936.,
      3383504., 3411072., 3466312., 3494096., 3521880., 3549664., 3605984.,
      3633984., 3661984., 3689984., 2775104., 2799232., 2823360., 2847488.,
      2895616., 2919936., 2944256., 2968576., 3017664., 3042176., 3066688.,
      3091200., 3141248., 3165952., 3190656., 3215360., 2381384., 2402448.,
      2423512., 2444576., 2486448., 2507680., 2528912., 2550144., 2592856.,
      2614256., 2635656., 2657056., 2700608., 2722176., 2743744., 2765312.,
      2174583., 2193006., 2211429., 2229852., 2266802., 2285372., 2303942.,
      2322512., 2360197., 2378914., 2397631., 2416348., 2454768., 2473632.,
      2492496., 2511360., 2505624., 2526576., 2547528., 2568480., 2610432.,
      2631552., 2652672., 2673792., 2716584., 2737872., 2759160., 2780448.,
      2824080., 2845536., 2866992., 2888448., 2889405., 2912970., 2936535.,
      2960100., 3007314., 3031068., 3054822., 3078576., 3126735., 3150678.,
      3174621., 3198564., 3247668., 3271800., 3295932., 3320064., 3252390.,
      3278652., 3304914., 3331176., 3383400., 3409872., 3436344., 3462816.,
      3516090., 3542772., 3569454., 3596136., 3650460., 3677352., 3704244.,
      3731136., 2970465., 2994018., 3017571., 3041124., 3087862., 3111604.,
      3135346., 3159088., 3206771., 3230702., 3254633., 3278564., 3327192.,
      3351312., 3375432., 3399552., 2734552., 2755312., 2776072., 2796832.,
      2838336., 2859264., 2880192., 2901120., 2943464., 2964560., 2985656.,
      3006752., 3049936., 3071200., 3092464., 3113728., 2312011., 2330150.,
      2348289., 2366428., 2402438., 2420724., 2439010., 2457296., 2494041.,
      2512474., 2530907., 2549340., 2586820., 2605400., 2623980., 2642560.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 256.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride1, VALID3x10x10x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11885072., 11907488., 11929904., 11952320., 11993024., 12015488.,
      12037952., 12060416., 12101360., 12123872., 12146384., 12168896.,
      12210080., 12232640., 12255200., 12277760., 11957456., 11980064.,
      12002672., 12025280., 12066176., 12088832., 12111488., 12134144.,
      12175280., 12197984., 12220688., 12243392., 12284768., 12307520.,
      12330272., 12353024., 12029840., 12052640., 12075440., 12098240.,
      12139328., 12162176., 12185024., 12207872., 12249200., 12272096.,
      12294992., 12317888., 12359456., 12382400., 12405344., 12428288.,
      12102224., 12125216., 12148208., 12171200., 12212480., 12235520.,
      12258560., 12281600., 12323120., 12346208., 12369296., 12392384.,
      12434144., 12457280., 12480416., 12503552., 12174608., 12197792.,
      12220976., 12244160., 12285632., 12308864., 12332096., 12355328.,
      12397040., 12420320., 12443600., 12466880., 12508832., 12532160.,
      12555488., 12578816., 12246992., 12270368., 12293744., 12317120.,
      12358784., 12382208., 12405632., 12429056., 12470960., 12494432.,
      12517904., 12541376., 12583520., 12607040., 12630560., 12654080.,
      12319376., 12342944., 12366512., 12390080., 12431936., 12455552.,
      12479168., 12502784., 12544880., 12568544., 12592208., 12615872.,
      12658208., 12681920., 12705632., 12729344., 12608912., 12633248.,
      12657584., 12681920., 12724544., 12748928., 12773312., 12797696.,
      12840560., 12864992., 12889424., 12913856., 12956960., 12981440.,
      13005920., 13030400., 12681296., 12705824., 12730352., 12754880.,
      12797696., 12822272., 12846848., 12871424., 12914480., 12939104.,
      12963728., 12988352., 13031648., 13056320., 13080992., 13105664.,
      12753680., 12778400., 12803120., 12827840., 12870848., 12895616.,
      12920384., 12945152., 12988400., 13013216., 13038032., 13062848.,
      13106336., 13131200., 13156064., 13180928., 12826064., 12850976.,
      12875888., 12900800., 12944000., 12968960., 12993920., 13018880.,
      13062320., 13087328., 13112336., 13137344., 13181024., 13206080.,
      13231136., 13256192., 12898448., 12923552., 12948656., 12973760.,
      13017152., 13042304., 13067456., 13092608., 13136240., 13161440.,
      13186640., 13211840., 13255712., 13280960., 13306208., 13331456.,
      12970832., 12996128., 13021424., 13046720., 13090304., 13115648.,
      13140992., 13166336., 13210160., 13235552., 13260944., 13286336.,
      13330400., 13355840., 13381280., 13406720., 13043216., 13068704.,
      13094192., 13119680., 13163456., 13188992., 13214528., 13240064.,
      13284080., 13309664., 13335248., 13360832., 13405088., 13430720.,
      13456352., 13481984., 13332752., 13359008., 13385264., 13411520.,
      13456064., 13482368., 13508672., 13534976., 13579760., 13606112.,
      13632464., 13658816., 13703840., 13730240., 13756640., 13783040.,
      13405136., 13431584., 13458032., 13484480., 13529216., 13555712.,
      13582208., 13608704., 13653680., 13680224., 13706768., 13733312.,
      13778528., 13805120., 13831712., 13858304., 13477520., 13504160.,
      13530800., 13557440., 13602368., 13629056., 13655744., 13682432.,
      13727600., 13754336., 13781072., 13807808., 13853216., 13880000.,
      13906784., 13933568., 12778832., 12804640., 12830448., 12856256.,
      12900352., 12926208., 12952064., 12977920., 13022256., 13048160.,
      13074064., 13099968., 13144544., 13170496., 13196448., 13222400.,
      12096528., 12121504., 12146480., 12171456., 12214720., 12239744.,
      12264768., 12289792., 12333296., 12358368., 12383440., 12408512.,
      12452256., 12477376., 12502496., 12527616., 11430608., 11454752.,
      11478896., 11503040., 11545472., 11569664., 11593856., 11618048.,
      11660720., 11684960., 11709200., 11733440., 11776352., 11800640.,
      11824928., 11849216., 10781072., 10804384., 10827696., 10851008.,
      10892608., 10915968., 10939328., 10962688., 11004528., 11027936.,
      11051344., 11074752., 11116832., 11140288., 11163744., 11187200.,
      11070608., 11094688., 11118768., 11142848., 11185216., 11209344.,
      11233472., 11257600., 11300208., 11324384., 11348560., 11372736.,
      11415584., 11439808., 11464032., 11488256., 11142992., 11167264.,
      11191536., 11215808., 11258368., 11282688., 11307008., 11331328.,
      11374128., 11398496., 11422864., 11447232., 11490272., 11514688.,
      11539104., 11563520., 11215376., 11239840., 11264304., 11288768.,
      11331520., 11356032., 11380544., 11405056., 11448048., 11472608.,
      11497168., 11521728., 11564960., 11589568., 11614176., 11638784.,
      10582224., 10605856., 10629488., 10653120., 10695040., 10718720.,
      10742400., 10766080., 10808240., 10831968., 10855696., 10879424.,
      10921824., 10945600., 10969376., 10993152., 9965456.,  9988256.,
      10011056., 10033856., 10074944., 10097792., 10120640., 10143488.,
      10184816., 10207712., 10230608., 10253504., 10295072., 10318016.,
      10340960., 10363904., 9365072.,  9387040.,  9409008.,  9430976.,
      9471232.,  9493248.,  9515264.,  9537280.,  9577776.,  9599840.,
      9621904.,  9643968.,  9684704.,  9706816.,  9728928.,  9751040.,
      8781072.,  8802208.,  8823344.,  8844480.,  8883904.,  8905088.,
      8926272.,  8947456.,  8987120.,  9008352.,  9029584.,  9050816.,
      9090720.,  9112000.,  9133280.,  9154560.,  9070608.,  9092512.,
      9114416.,  9136320.,  9176512.,  9198464.,  9220416.,  9242368.,
      9282800.,  9304800.,  9326800.,  9348800.,  9389472.,  9411520.,
      9433568.,  9455616.,  9142992.,  9165088.,  9187184.,  9209280.,
      9249664.,  9271808.,  9293952.,  9316096.,  9356720.,  9378912.,
      9401104.,  9423296.,  9464160.,  9486400.,  9508640.,  9530880.,
      9215376.,  9237664.,  9259952.,  9282240.,  9322816.,  9345152.,
      9367488.,  9389824.,  9430640.,  9453024.,  9475408.,  9497792.,
      9538848.,  9561280.,  9583712.,  9606144.,  8647760.,  8669216.,
      8690672.,  8712128.,  8751872.,  8773376.,  8794880.,  8816384.,
      8856368.,  8877920.,  8899472.,  8921024.,  8961248.,  8982848.,
      9004448.,  9026048.,  8096528.,  8117152.,  8137776.,  8158400.,
      8197312.,  8217984.,  8238656.,  8259328.,  8298480.,  8319200.,
      8339920.,  8360640.,  8400032.,  8420800.,  8441568.,  8462336.,
      7561680.,  7581472.,  7601264.,  7621056.,  7659136.,  7678976.,
      7698816.,  7718656.,  7756976.,  7776864.,  7796752.,  7816640.,
      7855200.,  7875136.,  7895072.,  7915008.,  7043216.,  7062176.,
      7081136.,  7100096.,  7137344.,  7156352.,  7175360.,  7194368.,
      7231856.,  7250912.,  7269968.,  7289024.,  7326752.,  7345856.,
      7364960.,  7384064.,  7332752.,  7352480.,  7372208.,  7391936.,
      7429952.,  7449728.,  7469504.,  7489280.,  7527536.,  7547360.,
      7567184.,  7587008.,  7625504.,  7645376.,  7665248.,  7685120.,
      7405136.,  7425056.,  7444976.,  7464896.,  7503104.,  7523072.,
      7543040.,  7563008.,  7601456.,  7621472.,  7641488.,  7661504.,
      7700192.,  7720256.,  7740320.,  7760384.,  7477520.,  7497632.,
      7517744.,  7537856.,  7576256.,  7596416.,  7616576.,  7636736.,
      7675376.,  7695584.,  7715792.,  7736000.,  7774880.,  7795136.,
      7815392.,  7835648.,  6975440.,  6994720.,  7014000.,  7033280.,
      7070848.,  7090176.,  7109504.,  7128832.,  7166640.,  7186016.,
      7205392.,  7224768.,  7262816.,  7282240.,  7301664.,  7321088.,
      6489744.,  6508192.,  6526640.,  6545088.,  6581824.,  6600320.,
      6618816.,  6637312.,  6674288.,  6692832.,  6711376.,  6729920.,
      6767136.,  6785728.,  6804320.,  6822912.,  6020432.,  6038048.,
      6055664.,  6073280.,  6109184.,  6126848.,  6144512.,  6162176.,
      6198320.,  6216032.,  6233744.,  6251456.,  6287840.,  6305600.,
      6323360.,  6341120.,  5567504.,  5584288.,  5601072.,  5617856.,
      5652928.,  5669760.,  5686592.,  5703424.,  5738736.,  5755616.,
      5772496.,  5789376.,  5824928.,  5841856.,  5858784.,  5875712.,
      5857040.,  5874592.,  5892144.,  5909696.,  5945536.,  5963136.,
      5980736.,  5998336.,  6034416.,  6052064.,  6069712.,  6087360.,
      6123680.,  6141376.,  6159072.,  6176768.,  5929424.,  5947168.,
      5964912.,  5982656.,  6018688.,  6036480.,  6054272.,  6072064.,
      6108336.,  6126176.,  6144016.,  6161856.,  6198368.,  6216256.,
      6234144.,  6252032.,  6001808.,  6019744.,  6037680.,  6055616.,
      6091840.,  6109824.,  6127808.,  6145792.,  6182256.,  6200288.,
      6218320.,  6236352.,  6273056.,  6291136.,  6309216.,  6327296.,
      6074192.,  6092320.,  6110448.,  6128576.,  6164992.,  6183168.,
      6201344.,  6219520.,  6256176.,  6274400.,  6292624.,  6310848.,
      6347744.,  6366016.,  6384288.,  6402560.,  6146576.,  6164896.,
      6183216.,  6201536.,  6238144.,  6256512.,  6274880.,  6293248.,
      6330096.,  6348512.,  6366928.,  6385344.,  6422432.,  6440896.,
      6459360.,  6477824.,  6218960.,  6237472.,  6255984.,  6274496.,
      6311296.,  6329856.,  6348416.,  6366976.,  6404016.,  6422624.,
      6441232.,  6459840.,  6497120.,  6515776.,  6534432.,  6553088.,
      6291344.,  6310048.,  6328752.,  6347456.,  6384448.,  6403200.,
      6421952.,  6440704.,  6477936.,  6496736.,  6515536.,  6534336.,
      6571808.,  6590656.,  6609504.,  6628352.};
  const std::array<int, 4> in_shape = {{3, 10, 10, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}